Einbetten von Metadaten in einen Video-Stream - Amazon Interactive Video Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Einbetten von Metadaten in einen Video-Stream

Zeitgesteuerte Metadaten von Amazon Interactive Video Service (IVS) bieten eine Möglichkeit zum Einbetten von Metadaten in einen Amazon IVS-Stream. Dadurch wird sichergestellt, dass alle Zuschauer die Metadaten gleichzeitig im Videostream erhalten, unabhängig von der Stream-Latenz oder dem geografischen Standort.

Was sind zeitgesteuerte Metadaten?

Zeitgesteuerte Metadaten sind Metadaten mit Zeitstempeln. Es kann programmgesteuert mithilfe der IVS-API oder des IVS-Broadcast-SDK in einen Stream eingefügt werden. Wenn Amazon IVS einen Stream verarbeitet, werden die zeitgesteuerten Metadaten mit den Audio- und Videoframes synchronisiert. Während der Wiedergabe erhalten alle Zuschauer des Streams die Metadaten gleichzeitig relativ zum Stream. Der Timecode dient als Cue-Point, der verwendet werden kann, um eine Aktion basierend auf den Daten auszulösen, z. B.

  • Aktualisieren der Spielerstatistiken für einen Sport-Stream.

  • Senden von Produktdetails für einen Live-Shopping-Stream

  • Senden von Fragen für einen Live-Quiz-Stream.

Zeitgesteuerte Amazon IVS-Metadaten verwenden ID3-Tags, die in die Videosegmente eingebettet sind. Infolgedessen sind sie im aufgenommenen Video verfügbar.

Einrichten von IAM-Berechtigungen

Voraussetzung: Bevor Sie fortfahren, hätten Sie Erste Schritte mit IVS-Streaming mit niedriger Latenz (einschließlich Erstellen eines IAM-Benutzers und Einrichten von Berechtigungen) durchgehen sollen.

Als Nächstes müssen Sie Ihrem IAM-Benutzer die Berechtigung erteilen, zeitgesteuerte Metadaten zu verwenden. Dazu gehen Sie wie folgt vor:

  1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im Navigationsbereich Benutzer und wählen Sie dann den gewünschten Benutzer aus (den Benutzernamen, den Sie bei der Erstellung eines AWS Kontos angegeben haben).

  3. Im Fenster Benutzer-Übersicht auf der Registerkarte Berechtigungen auf der Registerkarte wählen Sie Inline-Richtlinie hinzufügen (auf der rechten Seite).

  4. Klicken Sie auf der JSON, fügen Sie diesen Blob ein:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ivs:PutMetadata" ], "Resource": "arn:aws:ivs:*:*:channel/*" } ] }
  5. Noch im Fenster Erstellen einer Richtlinie wählen Sie Richtlinie überprüfen. Geben Sie einen Namen für die Richtlinie ein und wählen Sie dann Richtlinie erstellen aus.

  6. Sie kehren zum Fenster Benutzer-Übersicht zurück, in dem der neue Richtlinienname angezeigt wird.

Einfügen von zeitgesteuerten Metadaten

Sie können zeitgesteuerte Metadaten nur in einen aktiven Stream auf einem angegebenen Kanal einfügen.

Verwenden der AWS CLI

Zum Testen ist die AWS CLI die einfachste Möglichkeit, zeitgesteuerte Metadaten hinzuzufügen. Wenn Sie die AWS CLI verwenden, müssen Sie zuerst die CLI auf Ihrem Computer herunterladen und konfigurieren. Möglicherweise haben Sie das bereits getan durch Erste Schritte mit IVS-Streaming mit niedriger Latenz; wenn nicht, tun Sie es jetzt. Informationen zu den ersten Schritten finden Sie im Benutzerhandbuch für die AWS-Befehlszeilenschnittstelle.

Sobald Sie die CLI haben:

  1. Führen Sie den put-metadata-Befehl aus und übergeben Sie den Kanal ARN und Ihre Metadaten:

    aws ivs put-metadata --channel-arn <your-channel-arn> --metadata <your-metadata>

    Beispiel:

    aws ivs put-metadata --channel-arn arn:aws:ivs:us-west-2:465369119046:channel/GbiYJna5hFoC --metadata '{"question": "What does IVS stand for?", "correctIndex": 0, "answers": ["interactive video service", "interesting video service", "ingenious video service"]}'
  2. Amazon IVS prüft, ob der Stream live ist. Wenn der Stream nicht live ist, erhalten Sie einen Fehler. Andernfalls gibt die CLI fehlerfrei zurück und die Metadaten (Textblob) werden in den Stream eingefügt. Dies geschieht so schnell wie möglich. Es gibt keine Garantie dafür, wann dies geschieht. Alle Betrachter sehen die Metadaten jedoch am selben Punkt im Stream.

Verwenden der Amazon IVS-API

Um zeitgesteuerte Metadaten programmgesteuert einzufügen, verwenden Sie den PutMetadata-API-Endpunkt.

Hier ist ein Beispiel für HTTP-Anfrage:

POST /PutMetadata HTTP/1.1 { "channelArn": "my_channel", "metadata": "{\"question\": \"What does IVS stand for?\", \"correctIndex\": 0, \"answers\": [\"interactive video service\", \"interesting video service\", \"ingenious video service\"]}" }

Verwendung des IVS-Broadcast-SDK

Mit dem IVS-Broadcast-SDK können Sie zeitgesteuerte Metadaten in das Band einfügen. Dies kann nützlich sein, um die Metadaten mit den Audio- und Videoinhalten zu synchronisieren.

  • Android – Verwenden Sie in der BroadcastSession-Klasse sendTimedMetadata.

  • iOS – Verwenden Sie in der IVSBroadcastSession-Klasse sendTimedMetadata.

Verwenden von zeitgesteuerten Metadaten

Verwenden Sie den Amazon IVS Player, um zeitgesteuerte Metadaten zu verwenden, die in einen Video-Stream eingebettet sind. Siehe Amazon IVS Player SDK und den Rest der Player-Dokumentation.

Im Folgenden finden Sie Beispielausschnitte, die alle Metadaten drucken, die über das Amazon IVS Player-SDK an die Konsole empfangen wurden. Ein Ereignis wird ausgelöst, wenn die Wiedergabe ein Segment mit eingebetteten Metadaten erreicht. (Das Ereignis TEXT_METADATA_CUE für Web, onCue() für Android und player(_:didOutputCue:) für iOS. Sie können dieses Ereignis verwenden, um Funktionen in Ihrer Clientanwendung zu initiieren, z. B. ein interaktives Widget zu aktualisieren. Dieses Ereignis wird sowohl für Live- als auch für aufgezeichnete Inhalte ausgelöst.

Amazon IVS Player SDK for Web:

const player = IVSPlayer.create(); player.addEventListener(IVSPlayer.PlayerEventType.TEXT_METADATA_CUE, function (cue) { console.log('Timed metadata: ', cue.text); });

Amazon IVS Player SDK for Android:

@Override public void onCue(@NonNull Cue cue) { if(cue instanceof TextMetadataCue) { Log.i("Timed Metadata: ", ((TextMetadataCue)cue).text); } }

Amazon IVS Player SDK for iOS:

func player(_ player: IVSPlayer, didOutputCue cue: IVSCue) { if let textMetadataCue = cue as? IVSTextMetadataCue { print("Timed Metadata: \(textMetadataCue.text)") } }

Hinweis: Zeitgesteuerte Metadaten werden für iOS Safari und iOS Chrome in Player 1.3.0 und höher unterstützt.

Beispiel-Demo: Quiz-App

Auf GitHub finden Sie Codebeispiele einer interaktiven Quiz-App. Wir verwenden JSON über zeitgesteuerte Metadaten, um eine Quiz-Benutzeroberfläche zu füllen, um Fragen und Antworten anzuzeigen. Die Antworten sind auswählbar und zeigen an, ob die Auswahl korrekt ist.

Anzeigen von zeitgesteuerten Metadaten

Falls gewünscht, können Sie die in Ihrem Livestream eingebetteten zeitgesteuerten Metadaten in der Konsole anzeigen:

  1. Öffnen Sie die Amazon-IVS-Konsole.

  2. Wählen Sie oben links das Hamburger-Symbol aus, um den Navigationsbereich zu öffnen, und wählen Sie Live-Kanäle.

  3. Wählen Sie den Kanal aus, dessen Stream Sie anzeigen möchten, um zu einer Detailseite für diesen Kanal zu gelangen.

    Der Livestream wird im Abschnitt Livestream auf der Seite wiedergegeben.

  4. Wählen Sie unten im Fenster die Option zeitgesteuerte Metadaten.

    Während der Wiedergabe des Players werden bei jedem Ereignis zeitgesteuerter Metadaten der Wert und die empfangene Zeit angezeigt.

Weitere Informationen

Siehe zeitgesteuerte Metadaten für Amazon Interactive Video Service, die erste einer zweiteiligen Blog-Serie zur Verwendung von zeitgesteuerten Amazon IVS-Metadaten.