Kinesis Video Streams でのストリーミングメタデータの使用 - Amazon Kinesis Video Streams

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Kinesis Video Streams でのストリーミングメタデータの使用

Amazon Kinesis Video Streams プロデューサーを使用してSDK、Kinesis ビデオストリームに個々のフラグメントレベルでメタデータを埋め込むことができます。Kinesis Video Streams 内のメタデータは、変更可能なキーバリューのペアです。これを使用して、フラグメントの内容を記述したり、実際のフラグメントと一緒に転送する必要がある関連するセンサーの読み取り値を埋め込んだり、その他のカスタムニーズを満たすことができます。メタデータは、 GetMediaまたは GetMediaForFragmentListAPIオペレーションの一部として使用できます。これは、ストリームの保持期間全体にわたってフラグメントとともに保存されます。消費するアプリケーションは、 を使用してメタデータに基づいて読み取り、処理、対応できますパーサーライブラリを使用してカメラからの出力をモニタリングする

メタデータをストリーム内のフラグメントを埋め込むモードは 2 つあります。

  • 非永続的 – 発生したビジネス固有の基準に基づいて、ストリーム内のフラグメントにメタデータを 1 回限りまたはアドホックに貼り付けることができます。一例として、動きを検出して、Kinesis のビデオストリームに送信する前にその動きを含む対応フラグメントにメタデータを追加するスマートカメラがあります。フラグメントには、以下の形式でメタデータを適用できます。Motion = true

  • 永続 – 継続的なニーズに基づいて、ストリーム内の連続するフラグメントにメタデータを付加できます。一例として、Kinesis のビデオストリームに送信するすべてのフラグメントに関連付けられた現在の緯度と経度の座標を送信するスマートカメラがあります。すべてのフラグメントには、以下の形式でメタデータを適用できます。Lat = 47.608013N , Long = -122.335167W

アプリケーションのニーズに基づいて、同一のフラグメントに対して同時にこのモードの両方でメタデータを付け加えられます。埋め込みメタデータには、検出されたオブジェクト、追跡されたアクティビティ、GPS座標、またはストリーム内のフラグメントに関連付けるその他のカスタムデータが含まれる場合があります。メタデータはキーと値の文字列ペアとしてエンコードされます。

Kinesis ビデオストリームへのメタデータの追加

Kinesis ビデオストリームに追加するメタデータはMKVタグとしてモデル化され、キーと値のペアとして実装されます。

メタデータは、ストリーム内のイベントをマークするなどの一時的なもの、またはあるイベントが発生したフラグメントを識別するなどの永続的なもののいずれかです。永続メタデータ項目は残り、キャンセルされるまで連続する各フラグメントに適用されます。

注記

を使用して追加されたメタデータ項目はKinesis Video Streams へのアップロードTagStream、、UntagStreamおよび でAPIs実装されたストリームレベルのタグ付けとは異なりますListTagsForStream

ストリーミングメタデータ API

プロデューサーで次のオペレーションを使用してSDK、ストリーミングメタデータを実装できます。

PIC

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

C++ プロデューサー 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 プロデューサー SDK

Java プロデューサー を使用してSDK、 MediaSourceを使用して にメタデータを追加できますMediaSourceSink.onCodecPrivateData

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

永続メタデータと非永続メタデータ

非永続メタデータでは、同一の名前を使ったメタデータ項目を複数追加できます。プロデューサーは、次のフラグメントの前に付加されるまで、メタデータキュー内のメタデータ項目をSDK収集します。メタデータキューはストリームにメタデータ項目が適用されるとクリアされます。メタデータを繰り返すには、putKinesisVideoFragmentMetadata または putFragmentMetadata を再度呼び出します。

永続メタデータの場合、プロデューサーは非永続メタデータの場合と同じ方法でメタデータキュー内のメタデータ項目をSDK収集します。ただし、メタデータ項目は、次のフラグメントの先頭に追加されてもキューから削除されません。

putKinesisVideoFragmentMetadata または putFragmentMetadatapersistenttrue に設定して呼び出すと、以下のような動作になります。

  • を呼び出すAPIと、メタデータ項目がキューに入れられます。メタデータは、項目がキューに入っている間、すべてのフラグメントにMKVタグとして追加されます。

  • 以前に追加されたメタデータ項目と同じ名前と異なるAPIで を呼び出すと、その項目が上書きされます。

  • 空のAPIで を呼び出すと、メタデータキューからメタデータ項目が削除されます (キャンセルされます)。