Zielgruppe
In dieser Anleitung erfahren Sie, wie Sie Anwendungen mit der Video Intelligence API schnell entdecken und entwickeln. Die Anleitung richtet sich an Nutzer, die mit den Grundlagen des Programmierens vertraut sind, ist jedoch auch ohne viel Programmierwissen verständlich. Nachdem Sie die Anleitung durchgegangen sind, sollten Sie in der Lage sein, mithilfe der Referenzdokumentation Ihre eigenen grundlegenden Anwendungen zu erstellen.
In dieser Anleitung wird die Verwendung der Video Intelligence API mit Python-Code schrittweise erläutert. Dabei wird nicht erläutert, wie die Python-Clientbibliotheken funktionieren, sondern wie Aufrufe an die Video Intelligence API erfolgen. Anwendungen in Java und Node.js verhalten sich im Wesentlichen ähnlich.
Wenn Sie ein reines Code-Beispiel oder ein Beispiel in einer anderen Sprache benötigen, lesen Sie im begleitenden Handbuch nach.
Voraussetzungen
Diese Anleitung setzt Folgendes voraus:
- Sie haben in der Google Cloud Console ein Video Intelligence API-Projekt eingerichtet.
- Sie haben Ihre Umgebung mithilfe eines Dienstkontos und Standardanmeldedaten für Anwendungen eingerichtet.
- Sie haben Grundkenntnisse des Programmierens mit Python.
- Sie haben Ihre Python-Entwicklungsumgebung eingerichtet. Es wird empfohlen, die neueste Version von Python,
pip
undvirtualenv
auf Ihrem System zu installieren. Anleitungen finden Sie in der Installationsanleitung zur Python-Entwicklungsumgebung für die Google Cloud Platform. - Sie haben die Google Cloud-Clientbibliothek installiert.
Mit der Szenenwechselerkennung Anmerkungen zu einem Video hinzufügen
In dieser Anleitung wird eine einfache Video API-Anwendung mit der Anfrage SHOT_CHANGE_DETECTION
erläutert. Die Anfrage SHOT_CHANGE_DETECTION
liefert diese Anmerkungsergebnisse:
- Liste aller Szenen, die im Video vorkommen
- Start- und Endzeit jeder Szene
Zuerst zeigen wir den gesamten Code. Wir haben die meisten Kommentare aus diesem Code entfernt, um zu zeigen, wie kurz er ist. Während wir den Code durchgehen, kommen jedoch weitere Kommentare hinzu.
Diese einfache Anwendung führt folgende Aufgaben aus:
- Importiert die für die Ausführung der Anwendung erforderlichen Bibliotheken
- Nimmt eine im Cloud Storage-URI gespeicherte Videodatei als Argument an die
main()
-Funktion. - Ruft Anmeldeinformationen zum Ausführen des Diensts der Video Intelligence API ab
- Erstellt eine Anfrage nach Videoanmerkungen, die an den Videodienst gesendet wird
- Sendet die Anfrage und gibt einen lange laufenden Vorgang zurück
- Stellt den lang andauernden Vorgang in eine Warteschleife, bis das Video verarbeitet wurde, und gibt verfügbare Werte zurück.
- Analysiert die Antwort des Diensts und zeigt dem Nutzer die Antwort an.
Diese Schritte werden unten ausführlicher besprochen.
Bibliotheken importieren
Wir importieren argparse
, damit die Anwendung Eingabedateinamen als Argumente akzeptieren kann.
Für die Verwendung der Video Intelligence API importieren wir auch die google.cloud.videointelligence
-Bibliothek, die das Verzeichnis unserer API-Aufrufe und Aufzählungskonstanten enthält.
Führen Sie Ihre Anwendung aus
Hier analysieren wir das übergebene Argument für den Google Cloud Storage-URI des Namens der Videodatei und übergeben es an die Funktion main()
.
Bei der API authentifizieren
Bevor Sie mit dem Dienst der Video Intelligence API kommunizieren, müssen Sie den Dienst mithilfe zuvor erworbener Anmeldeinformationen authentifizieren. Innerhalb einer Anwendung erhalten Sie die Anmeldedaten am einfachsten über die Verwendung der Standardanmeldedaten für Anwendungen (ADC).
Standardmäßig ruft ADC die Anmeldedaten von der GOOGLE_APPLICATION_CREDENTIALS
-Umgebungsdatei ab, die so festgelegt sein muss, dass sie auf die JSON-Schlüsseldatei Ihres Dienstkontos verweist. (Sie müssen Ihr Dienstkonto und die Umgebung, wie in der Kurzanleitung beschrieben, zur Verwendung von ADC eingerichtet haben. Weitere Informationen finden Sie unter Dienstkonto einrichten.)
Erstellen Sie die Anfrage
Jetzt, da der Dienst der Video Intelligence API bereit ist, können wir eine Anfrage für diesen Dienst erstellen. Anfragen an die Video Intelligence API werden als JSON-Objekte bereitgestellt. Vollständige Informationen zur spezifischen Struktur einer solchen Anfrage finden Sie in der Video Intelligence API-Referenz.
Dieses Code-Snippet:
- Konstruiert das JSON für eine POST-Anfrage an die Methode
annotate_video()
- Injiziert den Google Cloud Storage-Speicherort des übergebenen Videodateinamens in die Anfrage
- Gibt an, dass die Methode
annotate
eineSHOT_CHANGE_DETECTION
ausführen soll.
Vorgang mit langer Ausführungszeit erstellen
Wenn wir zum ersten Mal eine Anfrage an die Video Intelligence API senden, erhalten wir kein direktes Ergebnis, sondern einen Vorgangsnamen, der im Feld name
der Antwort enthalten ist. Diesen können wir später zum Aufrufen der Ergebnisse verwenden.
Die Übergabe des Vorgangsnamens (eines numerischen Strings) an die operations
-Methode Operations Service der Video Intelligence API liefert den aktuellen Status des Vorgangs. Eine Beispielantwort sehen Sie hier:
{ "response":{ "@type":"type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoResponse" }, "name":"us-west1.17159971042783089144", "metadata":{ "annotationProgress":[ { "inputUri":"/video/gbikes_dinosaur.mp4", "updateTime":"2017-01-27T19:45:54.297807Z", "startTime":"2017-01-27T19:45:54.275023Z" } ], "@type":"type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoProgress" } }
Beachten Sie, dass das Feld response
derzeit nur das Feld @type
enthält, das den Typ dieser Antwort angibt. Sobald die tatsächlichen Ergebnisse verfügbar sind, enthält das Antwortfeld Ergebnisse dieses Typs.
Prüfen Sie den Vorgang
Unter Verwendung der Anfrage für unseren bestehenden Vorgang konstruieren wir eine while
-Schleife, um den Zustand dieses Vorgangs regelmäßig zu prüfen. Sobald unser Vorgang den Status done
angibt, beenden wir die Schleife und können nun die Antwort analysieren.
Antwort analysieren
Sobald der Vorgang abgeschlossen ist, enthält die Antwort eine AnnotateVideoResponse, die aus einer Liste von annotationResults
für jedes in der Anfrage gesendete Video besteht.
Da in der Anfrage nur ein Video gesendet wurde, wird das erste shotAnnotations
des Ergebnisses verwendet. Wir gehen alle "Segmente" des Videos durch.
Anwendung ausführen
Sie können die Anwendung starten, indem Sie einfach den Cloud Storage-URI eines Videos übergeben:
$ python shotchange.py gs://cloud-samples-data/video/gbikes_dinosaur.mp4 operationId=us-west1.12468772851081463748 Operation us-west1.12468772851081463748 started: 2017-01-30T01:53:45.981043Z Processing video for shot change annotations: Finished processing. Shot 0: 0.0 to 5.166666 Shot 1: 5.233333 to 10.066666 Shot 2: 10.1 to 28.133333 Shot 3: 28.166666 to 42.766666
Das wars! Sie haben eine Annotationsaufgabe mit der Video Intelligence API ausgeführt.