使用 C 製作者庫 - Amazon Kinesis Video Streams

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

使用 C 製作者庫

您可以使用 Amazon Kinesis Video Streams 提供的 C 製作者程式庫撰寫應用程式程式碼,將媒體資料從裝置傳送到 Kinesis 視訊串流。

物件模型

Kinesis Video Streams C 產生器程式庫是以稱為平台獨立程式碼庫 (PIC) 的通用元件為基礎,可 GitHub 在 https://github.com/awslabs/ amazon-kinesis-video-streams-pic/ 上取得。PIC包含基礎元件的獨立於平台的商務邏輯。Kinesis Video Streams C 製作者程式庫包裝了額外PIC的API層,允許案例和平台特定的回呼和事件。Kinesis Video Streams C 製作者程式庫具有建置在其上方的PIC下列元件:

  • 裝置資訊提供者 — 公開可直接提供給. DeviceInfo PIC API 您可以設定一組提供者,包括應用程式案例最佳化的提供者,這些提供者可根據應用程式處理的串流數量和類型,以及根據可用數量設定的必要緩衝數量,最佳化內容存放區。RAM

  • 串流資訊提供者 — 公開可直接提供給. StreamInfo PIC API 有一組特定於應用程式類型和常見的串流案例類型的提供者。其中包括視頻,音頻以及音頻和視頻多軌等提供商。這些案例中的每一個都有預設值,您可以根據應用程式的需求自訂這些預設值。

  • 回呼提供者 — 公開可直接提供給. ClientCallbacks PIC API 這包括一組用於網路 (CURL基於回API呼)、授權 (AWS 認證API) 的回呼提供者,以及在錯誤回呼時重試串流。回呼提供者API需要一些引數來設定,例如 AWS 區域 和授權資訊。這是透過使用 IoT 憑證或使用 AWS AccessKeyId SecretKey、或來完成 SessionToken。如果您的應用程式需要進一步處理特定回呼,才能實現一些應用程式特定邏輯,您可以使用自訂回呼來增強回呼提供者。

  • FrameOrderCoordinator— 幫助處理多軌場景的音頻和視頻同步。它具有默認行為,您可以自定義該行為以處理應用程序的特定邏輯。它也會在將影格結構中的框PIC架中繼資料封裝簡化,然後再將它送出至下層PICAPI。對於非多音軌案例,此元件是傳遞至。PIC putFrame API

C 程式庫提供以下物件,管理將資料傳送到 Kinesis 影片串流的作業:

  • KinesisVideoClient— 包含有關您裝置的資訊並維護回呼,以報告 Kinesis Video Streams 事件。

  • KinesisVideoStream— 代表視訊串流參數的相關資訊,例如名稱、資料保留期和媒體內容類型。

將媒體放入串流

您可以使用 C 庫提供的方法(例如,PutKinesisVideoFrame)將數據放入對KinesisVideoStream象中。然後程式庫會管理資料的內部狀態,包括以下任務:

  • 執行身分驗證。

  • 查看網路延遲。如果延遲太高,程式庫可能選擇減少影格數。

  • 追蹤進行中串流的狀態。

程序:使用 C 生產者 SDK

此程序示範如何在 C 應用程式中使用 Kinesis Video Streams 用戶端和媒體來源,將 H.264 編碼的視訊影格傳送到 Kinesis 視訊串流。

此程序包含以下步驟: