

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

# C プロデューサーライブラリを使用する
<a name="producer-sdk-c-api"></a>

Amazon Kinesis Video Streams が提供する C プロデューサーライブラリを使用して、デバイスから Kinesis ビデオストリームにメディアデータを送信するアプリケーションコードを記述できます。

## オブジェクトモデル
<a name="producer-sdk-c-objectmodel"></a>

Kinesis Video Streams C プロデューサーライブラリは、プラットフォームに依存しないコードベース (PIC、Platform Independent Codebase) と呼ばれる共通コンポーネントに基づきます。このコードベースは、GitHub ([https://github.com/awslabs/amazon-kinesis-video-streams-pic/](https://github.com/awslabs/amazon-kinesis-video-streams-pic/)) で入手できます。PIC には、基盤コンポーネントのプラットフォームに依存しないビジネスロジックが含まれています。Kinesis Video Streams C プロデューサーライブラリは、シナリオやプラットフォーム固有のコールバックやイベントを可能にする追加の API レイヤーで PIC をラップします。Kinesis Video Streams C プロデューサーライブラリには、PIC 上に構築された以下のコンポーネントがあります。
+ **デバイス情報プロバイダー** - PIC API に直接提供できる `DeviceInfo` 構造を公開します。アプリケーションが処理するストリームの数とタイプに基づいてコンテンツストアを最適化できるアプリケーションシナリオ最適化プロバイダーや、使用可能な RAM の量に基づいて設定された必要なバッファリングの量など、一連のプロバイダーを設定できます。
+ **ストリーム情報プロバイダー** - PIC API に直接提供できる `StreamInfo` 構造を公開します。アプリケーションタイプと一般的なタイプのストリーミングシナリオに固有のプロバイダーのセットがあります。これには、ビデオ、オーディオ、オーディオ、ビデオマルチトラックなどのプロバイダーが含まれます。これらの各シナリオには、アプリケーションの要件に応じてカスタマイズできるデフォルトがあります。
+ **コールバックプロバイダー** - PIC API に直接提供できる `ClientCallbacks` 構造を公開します。これには、ネットワーキング (CURL ベースの API コールバック）、認可 (AWS 認証情報 API)、エラーコールバックの再試行ストリーミング用の一連のコールバックプロバイダーが含まれます。コールバックプロバイダー API は、 AWS リージョン や認可情報など、設定する多数の引数を取ります。これは、IoT 証明書を使用するか、AccessKeyId、SecretKey、または SessionToken を使用して AWS 行われます。アプリケーションでアプリケーション固有のロジックを実現するために特定のコールバックをさらに処理する必要がある場合、カスタムコールバックでコールバックプロバイダーを拡張することができます。
+ **FrameOrderCoordinator** – マルチトラックのシナリオ用に音声と動画の同期の処理に役立ちます。デフォルトの動作があり、アプリケーション固有のロジックを処理するようにカスタマイズできます。また、低層 PIC API に送信する前に、PIC フレーム構造でのフレームメタデータのパッケージ化を合理化します。マルチトラック以外のシナリオの場合、このコンポーネントは PIC putFrame API へのパススルーです。

C ライブラリには、Kinesis ストリームへのデータ送信を管理するために次のオブジェクトが用意されています。
+ **KinesisVideoClient** – デバイスに関する情報が含まれ、Kinesis Video Streams イベントを報告するコールバックを維持します。
+ **KinesisVideoStream** – 名前、データ保持期間、メディアコンテンツタイプなど、ビデオストリームのパラメータに関する情報を表します。

## ストリームにメディアを配置する
<a name="producer-sdk-c-putframe"></a>

C ライブラリが提供するメソッド ( など`PutKinesisVideoFrame`) を使用して、`KinesisVideoStream`オブジェクトにデータを配置できます。ライブラリは、データの内部状態も管理します。タスクには以下が含まれる場合があります。
+ 認証を実行する。
+ ネットワークレイテンシーを監視する。レイテンシーが長すぎると、フレームが停止される場合があります。
+ 進行中のストリーミングのステータスを追跡する。

## 手順: C プロデューサー SDK を使用する
<a name="producer-sdk-c-using"></a>

この手順では、C アプリケーションで Kinesis Video Streams クライアントおよびメディアソースを使用して H.264 でエンコードされた動画フレームを Kinesis のビデオストリームに送信する方法について説明します。

この手順には、以下のステップが含まれます。
+ [C プロデューサーライブラリコードをダウンロードする](producersdk-c-download.md)
+ [コードを記述して調べる](producersdk-c-write.md)
+ [コードを実行して検証する](producersdk-c-test.md)