搭配 Kinesis Video Streams 使用串流中繼資料 - Amazon Kinesis Video Streams

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

搭配 Kinesis Video Streams 使用串流中繼資料

您可以使用 Amazon Kinesis Video Streams 生產者,在 Kinesis 影片串流中的個別片段層級SDK內嵌中繼資料。Kinesis Video Streams 中的中繼資料是可變鍵/值對。您可以使用它來描述片段的內容、嵌入必須與實際片段一起傳輸的相關感應器讀數,或滿足其他自訂需求。中繼資料會做為 GetMediaGetMediaForFragmentListAPI操作的一部分提供。它會與片段一起存放,在整個串流保留期間。您的取用應用程式可以使用 ,根據中繼資料讀取、處理和反應使用剖析器程式庫觀察攝影機的輸出

中繼資料可以用兩種模式內嵌於串流中的片段:

  • 非持久性 – 您可以根據已發生的業務特定條件,將中繼資料一次性或臨時附加到串流中的片段。一個範例是智慧攝影機,在將片段傳送到其 Kinesis 影片串流之前,會偵測動作並將中繼資料新增至包含動作的對應片段。您可以將中繼資料套用至下列格式的片段中:Motion = true

  • 持久性 – 您可以根據持續需求,將中繼資料附加至串流中的連續片段。一個範例是智慧攝影機,其會傳送與其傳送至其 Kinesis 影片串流之所有片段相關聯的目前緯度和經度座標。您可以將中繼資料套用至所有下列格式的片段中:Lat = 47.608013N , Long = -122.335167W

您可以根據應用程式的需求,同時在同一片段附加兩種模式的中繼資料。內嵌中繼資料可能包括偵測到的物件、追蹤的活動、GPS座標,或您想要與串流中片段建立關聯的任何其他自訂資料。中繼資料是以鍵值字串對編碼。

將中繼資料新增至 Kinesis 影片串流

您新增至 Kinesis 影片串流的中繼資料會建模為MKV標籤,這些標籤會實作為索引鍵/值對。

中繼資料可以是暫時性,例如標記串流內的事件,或持久性,例如識別指定事件發生的片段。持久性中繼資料項目會保留,並套用至每個連續片段,直到取消為止。

注意

使用 新增的中繼資料項目上傳至 Kinesis Video Streams與使用 TagStreamUntagStream和 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收集中繼資料佇列中的中繼資料項目,直到它們在下一個片段之前。中繼資料項目套用至串流後,中繼資料佇列將清空。若要重複中繼資料,請再次呼叫 putKinesisVideoFragmentMetadataputFragmentMetadata

對於持久性中繼資料,生產者會以與非持久性中繼資料相同的方式SDK收集中繼資料佇列中的中繼資料項目。不過,中繼資料項目在加上下一個片段時,不會從佇列中移除。

呼叫 putKinesisVideoFragmentMetadata​ 或 putFragmentMetadata​,persistent 設定為 true,有以下行為:

  • 呼叫 會將中繼資料項目API放入佇列。當項目在佇列中時,中繼資料會新增為每個片段的MKV標籤。

  • API 使用與先前新增的中繼資料項目相同的名稱和不同的呼叫 會覆寫項目。

  • API 使用空呼叫 會從中繼資料佇列中移除 (取消) 中繼資料項目。