Videos über die Befehlszeile mit Anmerkungen versehen

Auf dieser Seite wird beschrieben, wie Sie mit curl eine Video Intelligence API-Anfrage für Projekte stellen, deren Inhaber Sie sind.

Sie können die Schritte auf dieser Seite ausführen oder diese Kurzanleitung alsGoogle Cloud -Trainingslab ausprobieren.

Mit Lab loslegen

Hinweis

  1. Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Video Intelligence API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  6. Install the Google Cloud CLI.

  7. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  8. To initialize the gcloud CLI, run the following command:

    gcloud init
  9. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  10. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  11. Verify that billing is enabled for your Google Cloud project.

  12. Enable the Video Intelligence API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  13. Install the Google Cloud CLI.

  14. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  15. To initialize the gcloud CLI, run the following command:

    gcloud init

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Annotieren eines Videos benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Bucket erstellen

Verwenden Sie in Ihrer Entwicklungsumgebung den Befehl gcloud storage buckets create, um einen Bucket zu erstellen.

Ersetzen Sie vor dem Ausführen des Befehls die folgenden Werte:

  • BUCKET_LOCATION: Der geografische Standort, an dem Sie die Daten in Ihrem Bucket speichern möchten. Beispiel: US.
gcloud storage buckets create gs://videointelligence-quickstart-bucket --location=BUCKET_LOCATION

Wenn die Anfrage erfolgreich ist, gibt der Befehl die folgende Meldung zurück:

Creating gs://videointelligence-quickstart-bucket/...

Video in den Bucket hochladen

Verwenden Sie in Ihrer Entwicklungsumgebung den Befehl gcloud storage cp, um ein Video in den von Ihnen erstellten Bucket hochzuladen.

Ersetzen Sie vor dem Ausführen des Befehls folgende Werte:

  • OBJECT_LOCATION: Der lokale Pfad zu Ihrem Objekt. Beispiel: Desktop/dog.mp4.
gcloud storage cp OBJECT_LOCATION gs://videointelligence-quickstart-bucket

Wenn der Vorgang erfolgreich ausgeführt wurde, sieht die Antwort in etwa so aus:

Completed files 1/1 | 164.3kiB/164.3kiB

Video mit Anmerkungen versehen

gcloud

Rufen Sie mit der gcloud CLI den Befehl detect-labels für den Pfad des zu analysierenden Videos auf.

Ersetzen Sie vor dem Ausführen des Befehls die folgenden Werte:

  • YOUR_OBJECT: Der Dateiname des von Ihnen hochgeladenen Videos. Beispiel: dog.mp4.
gcloud ml video detect-labels gs://videointelligence-quickstart-bucket/YOUR_OBJECT

Befehlszeile

Verwenden Sie curl, um eine POST-Anfrage an die Methode videos:annotate zu senden.

Ersetzen Sie vor dem Ausführen des Befehls die folgenden Werte:

  • YOUR_OBJECT: Der Dateiname des hochgeladenen Videos. Beispiel: dog.mp4.
curl -X POST \
  -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
  -H "Content-Type: application/json; charset=utf-8" \
  --data '{"inputUri":"gs://videointelligence-quickstart-bucket/YOUR_OBJECT","features":["LABEL_DETECTION"]}'\
  "https://videointelligence.googleapis.com/v1/videos:annotate"

Die Video Intelligence API erstellt einen Vorgang, um Ihre Anfrage zu verarbeiten. Die Antwort enthält den Vorgangsnamen:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID"
}

Sie können Informationen zum Vorgang anfordern, indem Sie den Endpunkt v1.operations aufrufen und dabei OPERATION_NAME im folgenden Beispiel durch den im vorherigen Schritt zurückgegebenen Namen ersetzen:

  curl -X GET \
    -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    https://videointelligence.googleapis.com/v1/OPERATION_NAME

Dieser Befehl gibt Informationen zu Ihrem Vorgang zurück. Wenn der Vorgang abgeschlossen ist, wird das Feld done eingefügt und auf true gesetzt:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID",
  "metadata": {
  "@type": "type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoProgress",
    "annotationProgress": [
      {
        "inputUri": "/videointelligence-quickstart-bucket/YOUR_OBJECT",
        "progressPercent": 100,
        "startTime": "2020-04-01T22:13:17.978847Z",
        "updateTime": "2020-04-01T22:13:29.576004Z"
      }
    ]
  },
  "done": true,
  ...
}

Nach etwa einer Minute werden die Anmerkungsergebnisse zurückgegeben. Die Ergebnisse sollten in etwa so aussehen:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoProgress",
    "annotationProgress": [
      {
        "inputUri": "videointelligence-quickstart-bucket/YOUR_OBJECT",
        "progressPercent": 100,
        "startTime": "2020-04-01T22:13:17.978847Z",
        "updateTime": "2020-04-01T22:13:29.576004Z"
      }
    ]
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoResponse",
    "annotationResults": [
      {
        "inputUri": "/videointelligence-quickstart-bucket/YOUR_OBJECT",
        "segmentLabelAnnotations": [
          {
            "entity": {
              "entityId": "/m/07bsy",
              "description": "transport",
              "languageCode": "en-US"
            },
            "segments": [
              {
                "segment": {
                  "startTimeOffset": "0s",
                  "endTimeOffset": "38.757872s"
                },
                "confidence": 0.81231534
              }
            ]
          },
         {
          "entity": {
              "entityId": "/m/01n32",
              "description": "city",
              "languageCode": "en-US"
            },
            "categoryEntities": [
              {
                "entityId": "/m/043rvww",
                "description": "geographical feature",
                "languageCode": "en-US"
              }
            ],
            "segments": [
              {
                "segment": {
                  "startTimeOffset": "0s",
                  "endTimeOffset": "38.757872s"
                },
                "confidence": 0.3942462
              }
            ]
          },
          ...
          {
            "entity": {
              "entityId": "/m/06gfj",
              "description": "road",
              "languageCode": "en-US"
            },
            "segments": [
              {
                "segment": {
                  "startTimeOffset": "0s",
                  "endTimeOffset": "38.757872s"
                },
                "confidence": 0.86698604
              }
            ]
          }
        ]
      }
    ]
  }
}
   

Glückwunsch! Sie haben Ihre erste Anfrage an die Video Intelligence API gesendet.

Bereinigen

Führen Sie einen der folgenden Schritte aus, damit Ihrem Google Cloud Konto die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden:

  • Wenn Sie das erstellte Projekt weiterhin verwenden möchten, verwenden Sie den Befehl gcloud storage rm mit dem Flag --recursive, um den Bucket und seinen Inhalt zu löschen:

    gcloud storage rm gs://videointelligence-quickstart-bucket --recursive
  • Wenn Sie das für diese Kurzanleitung erstellte Projekt nicht mehr benötigen, löschen Sie es.

    1. Wechseln Sie in der Google Cloud -Console zur Seite Ressourcen verwalten.

      Zur Seite „Ressourcen verwalten“

    2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
    3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Nächste Schritte