本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Kinesis Video Streams API 和製作者程式庫支援
Kinesis Video Streams 可讓您建立和管理串流,以及從串流讀取或寫入媒體資料。APIsKinesis Video Streams 主控台除了管理功能外,也支援即時和 video-on-demand播放。Kinesis Video Streams 也提供一組製作者程式庫,您可以在應用程式程式碼中使用這些程式庫,從媒體來源擷取資料並上傳到 Kinesis 影片串流。
Kinesis Video Streams API
Kinesis Video Streams 可APIs用於建立和管理 Kinesis Video Streams。它還提供了APIs用於讀取和寫入媒體數據到流,如下所示:
-
製作人 API — Kinesis Video Streams 提供
PutMedia
API將媒體資料寫入 Kinesis 視訊串流的功能。在PutMedia
要求中,生產者會傳送媒體片段的串流。片段是可獨自運作的一系列影格。屬於一片段的影格應與其他片段中的任何影格不存在相依性。如需詳細資訊,請參閱PutMedia。片段到達時,Kinesis Video Streams 會依遞增順序指派唯一的片段編號。它也會將每個片段的製作者端和伺服器端時間戳記儲存為 Kinesis Video Stream 特定的中繼資料。
-
消費者 APIs — 消費者可以使用APIs以下內容從流中獲取數據:
-
GetMedia
-使用時API,消費者必須識別起始片段。API然後按照片段添加到流的順序返回片段(按片段數增加順序)。在片段中的媒體數據被打包成一個結構化的格式,如 Matroska()MKV。如需詳細資訊,請參閱GetMedia。 注意
GetMedia
知道片段所在 (封存在資料存放區或可即時提供)。例如,如果GetMedia
判定開始片段已封存,它會開始從資料存放區傳回片段。當它必須傳回尚未封存的較新片段時,請GetMedia
切換至從記憶體內串流緩衝區讀取片段。這是一種持續的消費者範例,此會以串流導入片段的順序來處理片段。
GetMedia
可讓影片處理應用程式失敗或落後,然後追上進度,而無需執行其他操作。使用GetMedia
,應用程式可以處理已封存在資料存放區的資料,並在應用程式追趕時,GetMedia
會持續在應用程式抵達時即時饋送媒體資料。 -
GetMediaFromFragmentList
(和ListFragments
) - 批次處理應用程式可視為離線消費者。離線消費者可能會選擇結合ListFragments
和來明確擷取特定媒體片段或視訊範圍GetMediaFromFragmentList
APIs。ListFragments
並GetMediaFromFragmentList
讓應用程式識別特定時間範圍或片段範圍的視訊片段,然後依序或 parallel 擷取這些片段以進行處理。這種方法是適用於MapReduce
應用程式套件,也就是在必須快速地平行處理大量資料時。例如,假設一個消費者想要處理一天量的影片片段。消費者可執行以下操作:
-
呼叫
ListFragments
API並指定時間範圍以選取所需的片段集合,以取得片段清單。會API傳回指定時間範圍內所有片段的中繼資料。中繼資料提供片段編號、生產者端和伺服器端時間戳記等資訊。
-
使用片段中繼資料清單並以任何順序擷取片段。例如,若要處理當天的所有片段,消費者可能會選擇將清單拆分為子清單,並讓 Worker (例如,多個 Amazon EC2 執行個體) 使用. parallel 擷取片段
GetMediaFromFragmentList
,並 parallel 處理。
-
-
下圖顯示了這些API調用期間片段和塊的數據流。
當生產者傳送 PutMedia
要求時,就會在承載中傳送媒體中繼資料,然後傳送一系列的媒體資料片段。接收到資料後,Kinesis Video Streams 會將傳入的媒體資料儲存為 Kinesis Video Streams 區塊。每個區塊都包含下列項目:
-
媒體中繼資料的複本
-
片段
-
Kinesis 影片串流特定的中繼資料;例如片段編號以及伺服器端和生產者端時間戳記
當消費者要求媒體中繼資料時,Kinesis Video Streams 會傳回區塊串流,從您在要求中指定的片段編號開始。
如果您為串流啟用資料持續性,則在接收到串流上的片段後,Kinesis Video Streams 也會將片段的副本儲存至資料存放區。
端點探索病毒碼
控制平面 REST APIs
若要存取 Kinesis Video Streams 控制平面 REST APIs,請使用 Kinesis Video Streams 服務端點。
資料平面 REST APIs
Kinesis Video Streams 使用行動網路架構建立,以確保更好的擴展和流量隔離屬性。由於每個串流都對應至區域中的特定儲存格,因此您的應用程式必須使用串流已對應至的正確儲存格特有端點。存取資料平面時 RESTAPIs,您需要自行管理和對應正確的端點。此程序 (端點探索病毒碼) 說明如下:
-
端點探索病毒碼會從呼叫其中一個
GetEndpoints
動作開始。這些動作屬於控制平面。 快取並重複使用端點。
如果快取的端點不再有效,請進行新呼叫
GetEndpoints
以重新整理端點。
生產者庫
建立 Kinesis 視訊串流後,您就可以開始將資料傳送至串流。在應用程式程式碼中,您可以使用這些程式庫從媒體來源擷取資料,並上傳到 Kinesis 影片串流。如需這些可用製作者資料庫的詳細資訊,請參閱 上傳至 Kinesis Video Streams。