

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

# 上傳至 Kinesis Video Streams
<a name="producer-sdk"></a>

Amazon Kinesis Video Streams 生產者程式庫是 Kinesis Video Streams 生產者開發套件中的一組程式庫。用戶端使用 程式庫和 SDK 建置裝置內應用程式，以安全地連線至 Kinesis Video Streams，並串流媒體資料以在主控台或用戶端應用程式中即時檢視。

媒體資料可以依下列方式進行串流：
+ 即時
+ 緩衝幾秒鐘後
+ 媒體上傳之後

建立 Kinesis Video Streams 串流之後，您可以開始將資料傳送至該串流。您可以使用 SDK 建立應用程式碼，從媒體來源擷取稱為影格的影片資料，並將其上傳至 Kinesis Video Streams。這些應用程式也稱為*生產者*應用程式。

生產者程式庫包含下列元件：
+ [Kinesis Video Streams 生產者用戶端](#producer-sdk-client)
+ [Kinesis Video Streams 生產者程式庫](#producer-sdk-library)

## Kinesis Video Streams 生產者用戶端
<a name="producer-sdk-client"></a>

Kinesis Video Streams 生產者用戶端包含單一`KinesisVideoClient`類別。此類別會管理媒體來源、從來源接收資料，並在資料從媒體來源流向 Kinesis Video Streams 時管理串流生命週期。它還提供了一個`MediaSource`界面，用於定義 Kinesis Video Streams 與專屬硬體和軟體之間的互動。

媒體來源可以是任何項目。例如，您可以使用攝影機媒體來源或麥克風媒體來源。媒體來源不僅限於音訊和影片來源。例如，資料日誌可能是文字檔案，但它們依然可以做為資料串流來傳送。您也可以在電話上擁有多個攝影機，以便同時串接資料。

若要從這些資源取得資料，您可以實作 `MediaSource` 界面。此界面可啟用我們不提供內建支援的其他案例。例如，您可以選擇將下列項目傳送至 Kinesis Video Streams：
+ 診斷資料串流 (例如，應用程式日誌和事件)
+ 從紅外線攝影機、RADARs 或深度攝影機的資料

Kinesis Video Streams 不會為攝影機等產生媒體的裝置提供內建實作。若要從這些裝置擷取資料，您必須實作程式碼，藉此建立您自己的自訂媒體來源實作。然後，您可以使用 明確註冊自訂媒體來源`KinesisVideoClient`，將資料上傳至 Kinesis Video Streams。

Kinesis Video Streams 生產者用戶端適用於 Java 和 Android 應用程式。如需詳細資訊，請參閱[使用 Java 生產者程式庫](producer-sdk-javaapi.md)及[使用 Android 生產者程式庫](producer-sdk-android.md)。

## Kinesis Video Streams 生產者程式庫
<a name="producer-sdk-library"></a>

Kinesis Video Streams 生產者程式庫包含在 Kinesis Video Streams 生產者用戶端中。此程式庫也可供希望與 Kinesis Video Streams 更深入整合的使用者直接使用。它讓您可透過內含專屬的作業系統、網路堆疊，有限裝置內資源的裝置進行整合。

Kinesis Video Streams 生產者程式庫實作狀態機器，以串流至 Kinesis Video Streams。它提供回呼勾點，此需要您提供自己的傳輸實作和明確處理每則傳入和來自服務的訊息。

您可以選擇直接使用 Kinesis Video Streams 生產者程式庫，原因如下：
+ 您想要執行應用程式的裝置沒有 Java 虛擬機器。
+ 您想以非 Java 語言編寫應用程式程式碼。
+ 由於記憶體和處理能力等限制，您想要減少程式碼中的額外負荷量，並將其限制為裸露的最低抽象層級。

目前，Kinesis Video Streams 生產者程式庫適用於 Android、C、C\+\+ 和 Java 應用程式。如需詳細資訊，請參閱下列*相關主題*中支援的語言。

## 了解什麼是生產者程式庫
<a name="producer-sdk-related-topics"></a>

 [使用 Java 生產者程式庫](producer-sdk-javaapi.md) 

 [使用 Android 生產者程式庫](producer-sdk-android.md) 

 [使用 C\+\+ 生產者程式庫](producer-sdk-cpp.md) 

 [使用 C 生產者程式庫](producer-sdk-c-api.md) 

 [在 Raspberry Pi 上使用 C\+\+ 生產者 SDK](producersdk-cpp-rpi.md) 