Verwenden von Streaming-Metadaten mit Kinesis Video Streams - Amazon Kinesis Video Streams

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.

Verwenden von Streaming-Metadaten mit Kinesis Video Streams

Sie können den Amazon Kinesis Video Streams Streams-Producer verwendenSDK, um Metadaten auf der Ebene einzelner Fragmente in einen Kinesis-Videostream einzubetten. Metadaten in Kinesis Video Streams sind ein veränderbares Schlüssel-Wert-Paar. Sie können es verwenden, um den Inhalt des Fragments zu beschreiben, zugehörige Sensormesswerte einzubetten, die zusammen mit dem eigentlichen Fragment übertragen werden müssen, oder um andere benutzerdefinierte Anforderungen zu erfüllen. Die Metadaten werden im Rahmen der GetMedia GetMediaForFragmentList API OR-Operationen zur Verfügung gestellt. Sie werden zusammen mit den Fragmenten für die gesamte Dauer der Aufbewahrungsfrist des Streams gespeichert. Ihre nutzenden Anwendungen können anhand der Metadaten lesen, verarbeiten und darauf reagierenSehen Sie sich die Ausgabe von Kameras mithilfe der Parser-Bibliothek an.

Es gibt zwei Modi, in denen die Metadaten in Fragmente in einem Stream eingebettet werden können:

  • Nicht persistent — Sie können Metadaten einmalig oder ad hoc an Fragmente in einem Stream anhängen, je nachdem, welche geschäftsspezifischen Kriterien erfüllt wurden. Ein Beispiel ist eine Smart-Kamera, die Bewegungen erkennt und Metadaten zu den entsprechenden Fragmenten hinzufügt, die die Bewegung enthalten, bevor sie die Fragmente an ihren Kinesis-Videostream sendet. Sie können Metadaten im folgenden Format auf das Fragment anwenden: Motion = true.

  • Persistent — Sie können je nach Bedarf Metadaten an aufeinanderfolgende Fragmente in einem Stream anhängen. Ein Beispiel ist eine Smart-Kamera, die die aktuellen Breiten- und Längengradkoordinaten aller Fragmente, die sie sendet, an ihren Kinesis-Videostream sendet. Sie können Metadaten im folgenden Format auf alle Fragmente anwenden: Lat = 47.608013N , Long = -122.335167W.

Sie können Metadaten je nach den Anforderungen Ihrer Anwendung in beiden Modi gleichzeitig an dasselbe Fragment binden. Die eingebetteten Metadaten können erkannte Objekte, verfolgte Aktivitäten, GPS Koordinaten oder andere benutzerdefinierte Daten enthalten, die Sie den Fragmenten im Stream zuordnen möchten. Metadaten sind als Schlüssel-Werte-Paare codiert.

Hinzufügen von Metadaten zu einem Kinesis-Videostream

Metadaten, die Sie einem Kinesis-Videostream hinzufügen, werden als MKV Tags modelliert, die als Schlüssel-Wert-Paare implementiert werden.

Metadaten können entweder transient sein, wie z. B. zur Markierung eines Elements innerhalb des Streams, oder persistent, wie z. B. zum Identifizieren von Fragmenten, bei denen ein bestimmtes Ereignis stattfindet. Ein persistentes Metadatenelement bleibt bestehen und wird auf jedes aufeinanderfolgende Fragment angewendet, bis es gelöscht wird.

Anmerkung

Die mithilfe von hinzugefügten Metadatenelemente Zu Kinesis Video Streams hochladen unterscheiden sich von dem Tagging auf Stream-Ebene, das mitTagStream, UntagStream und APIs implementiert wurde. ListTagsForStream

Streaming-Metadaten API

Sie können die folgenden Operationen im Producer verwenden, SDK um Streaming-Metadaten zu implementieren.

PIC

PUBLIC_API STATUS putKinesisVideoFragmentMetadata(STREAM_HANDLE streamHandle, PCHAR name, PCHAR value, BOOL persistent);

C++-Produzent SDK

/** * Appends a "tag" or metadata - a key/value string pair into the stream. */ bool putFragmentMetadata(const std::string& name, const std::string& value, bool persistent = true);

Java-Produzent SDK

Sie können den Java-Producer verwendenSDK, um Metadaten zu einer MediaSource Verwendung hinzuzufügenMediaSourceSink.onCodecPrivateData:

void onFragmentMetadata(final @Nonnull String metadataName, final @Nonnull String metadataValue, final boolean persistent) throws KinesisVideoException;

Persistente und nicht persistente Metadaten

Für nicht persistente Metadaten können Sie mehrere Metadatenelemente mit demselben Namen hinzufügen. Der Producer SDK sammelt die Metadatenelemente in der Metadaten-Warteschlange, bis sie dem nächsten Fragment vorangestellt werden. Die Metadaten-Warteschlange wird gelöscht, während Metadatenelemente auf den Stream angewendet werden. Um die Metadaten zu wiederholen, rufen Sie putKinesisVideoFragmentMetadata oder putFragmentMetadata erneut auf.

Bei persistenten Metadaten SDK sammelt der Producer die Metadatenelemente in der Metadatenwarteschlange auf die gleiche Weise wie bei nicht persistenten Metadaten. Die Metadatenelemente werden jedoch nicht aus der Warteschlange entfernt, wenn sie dem nächsten Fragment vorangestellt werden.

Wenn putKinesisVideoFragmentMetadata oder putFragmentMetadata mit persistent auf true eingestellt aufgerufen wird, bewirkt dies das folgende Verhalten:

  • APIDurch den Aufruf von wird das Metadatenelement in die Warteschlange gestellt. Die Metadaten werden jedem Fragment als MKV Tag hinzugefügt, solange sich das Element in der Warteschlange befindet.

  • Wenn Sie das API mit demselben Namen und einem anderen Wert als ein zuvor hinzugefügtes Metadatenelement aufrufen, wird das Element überschrieben.

  • Beim Aufrufen von API mit einem leeren Wert wird das Metadatenelement aus der Metadaten-Warteschlange entfernt (storniert).