

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

# 例: Kinesis Video Streams プロデューサー SDK GStreamer プラグイン - kvssink
<a name="examples-gstreamer-plugin"></a>

このトピックでは、GStreamer プラグインとして使用する Amazon Kinesis Video Streams プロデューサー SDK を構築する方法について説明します。

**Topics**
+ [GStreamer 要素をダウンロード、構築、設定する](#examples-gstreamer-plugin-download)
+ [GStreamer 要素を実行する](#examples-gstreamer-plugin-run)
+ [GStreamer 起動コマンドの例](#examples-gstreamer-plugin-launch)
+ [Docker コンテナで GStreamer 要素を実行する](#examples-gstreamer-plugin-docker)
+ [GStreamer 要素パラメータリファレンス](examples-gstreamer-plugin-parameters.md)

[GStreamer](https://gstreamer.freedesktop.org/) は、モジュラープラグインを組み合わせてカスタムメディアパイプラインを作成するために、複数のカメラとビデオソースで使用される一般的なメディアフレームワークです。Kinesis Video Streams GStreamer プラグインは、既存の GStreamer メディアパイプラインと Kinesis Video Streams の統合を合理化します。GStreamer を統合すると、ウェブカメラまたはリアルタイムストリーミングプロトコル (RTSP) カメラから Kinesis Video Streams にビデオをストリーミングして、リアルタイムまたはそれ以降の再生、ストレージ、および詳細な分析を行うことができます。

GStreamer プラグインは、Kinesis Video Streams プロデューサー SDK が提供する機能を GStreamer シンク要素 にカプセル化することで、Kinesis Video Streams へのビデオストリームの転送を自動的に管理します`kvssink`。GStreamer フレームワークは、カメラや他のビデオソースのようなデバイスからのメディアフローを構築して処理、レンダリング、保存を行うための標準的なマネージド環境を提供します。

GStreamer パイプラインは通常、ソース (ビデオカメラ) とシンクエレメント (ビデオをレンダリングするプレーヤーやオフラインで取得するためのストレージ) 間のリンクで構成されます。この例では、プロデューサー SDK エレメントをビデオソース (ウェブカメラまたは IP カメラ) の*シンク*、つまりメディア送信先として使用します。SDK をカプセル化するプラグイン要素は、ビデオストリームを Kinesis Video Streams に送信します。

このトピックでは、ウェブカメラや RTSP ストリームなどのビデオソースからビデオをストリーミングできる GStreamer メディアパイプラインを構築する方法について説明します。通常、中間エンコードステージ (H.264 エンコードを使用) を介して Kinesis Video Streams に接続されます。動画ストリームが Kinesis 動画ストリームとして利用可能になったら、 を使用して動画ストリーム[パーサーライブラリを使用してカメラからの出力を監視する](parser-library.md)をさらに処理、再生、保存、または分析できます。

![カメラから サービスにビデオをストリーミングする GStreamer メディアパイプラインの機能ビュー。](http://docs.aws.amazon.com/ja_jp/kinesisvideostreams/latest/dg/images/gstreamer-pipeline.png)


## GStreamer 要素をダウンロード、構築、設定する
<a name="examples-gstreamer-plugin-download"></a>

GStreamer プラグインの例は、Kinesis Video Streams C\+\+ プロデューサー SDK に含まれています。SDK の前提条件およびダウンロードの詳細については、「[C\+\+ プロデューサーライブラリコードをダウンロードして設定する](producersdk-cpp-download.md)」を参照してください。

プロデューサー SDK GStreamer シンクは、macOS、Ubuntu、Raspberry Pi、または Windows で動的ライブラリとして構築できます。GStreamer プラグインは `build` ディレクトリにあります。このプラグインをロードするには、 にある必要があります`GST_PLUGIN_PATH`。次のコマンドを実行します。

```
export GST_PLUGIN_PATH=`pwd`/build
```

**注記**  
macOS では、Docker コンテナで GStreamer を実行する場合にのみネットワークカメラからビデオをストリーミングできます。Docker コンテナで macOS の USB カメラからのビデオのストリーミングはサポートされていません。

## GStreamer 要素を実行する
<a name="examples-gstreamer-plugin-run"></a>

Kinesis Video Streams プロデューサー SDK 要素をシンクとして GStreamer を実行するには、 `gst-launch-1.0` コマンドを使用します。GStreamer プラグインが使用するのに適したアップストリーム要素を使用します。たとえば、Linux システム上の v4l2 デバイスには [v4l2src](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page) を、RTSP デバイスには [rtspsrc](https://gstreamer.freedesktop.org/documentation/rtsp/rtspsrc.html#rtspsrc-page) を使用します。`kvssink` をシンク (パイプラインの最終的な送信先) としてを指定し、ビデオをプロデューサー SDK に送信します。

[認証情報の提供](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/examples-gstreamer-plugin-parameters.html#credentials-to-kvssink)と[リージョンの提供](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/examples-gstreamer-plugin-parameters.html#kvssink-region)に加えて、 `kvssink`要素には次の必須パラメータがあります。
+ `stream-name` – 送信先 Kinesis Video Streams の名前。

`kvssink` のオプションのパラメータの詳細については、「[GStreamer 要素パラメータリファレンス](examples-gstreamer-plugin-parameters.md)」を参照してください。

GStreamer プラグインとパラメータに関する最新情報については、[GStreamer プラグイン](https://gstreamer.freedesktop.org/documentation/plugins_doc.html?gi-language=c)」を参照してください。GStreamer 要素またはプラグインの名前の`gst-inspect-1.0`後に を使用して、その情報を出力し、デバイスで使用可能であることを確認することもできます。

```
gst-inspect-1.0 kvssink
```

構築が`kvssink`失敗した場合、または GST\_PLUGIN\_PATH が正しく設定されていない場合、出力は次のようになります。

```
No such element or plugin 'kvssink'
```

## GStreamer 起動コマンドの例
<a name="examples-gstreamer-plugin-launch"></a>

次の例は、`kvssink`GStreamer プラグインを使用してさまざまなタイプのデバイスからビデオをストリーミングする方法を示しています。

### 例 1: Ubuntu の RTSP カメラからビデオをストリーミングする
<a name="examples-gstreamer-plugin-launch-ex1"></a>

次のコマンドを実行すると、ネットワーク RTSP カメラからストリーミングする GStreamer パイプラインが Ubuntu に作成されます。これは [rtspsrc](https://gstreamer.freedesktop.org/documentation/rtsp/rtspsrc.html?gi-language=c) GStreamer プラグインを使用します。

```
gst-launch-1.0 -v rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! h264parse ! kvssink stream-name="YourStreamName" storage-size=128
```

### 例 2: Ubuntu の USB カメラでビデオをエンコードしてストリーミングする
<a name="examples-gstreamer-plugin-launch-ex2"></a>

次のコマンドを実行すると、USB カメラからのストリームを H.264 形式でエンコードし、Kinesis Video Streams にストリーミングする GStreamer パイプラインが Ubuntu に作成されます。この例では [v4l2src](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page) GStreamer プラグインを使用します。

```
gst-launch-1.0 v4l2src do-timestamp=TRUE device=/dev/video0 ! videoconvert ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! x264enc  bframes=0 key-int-max=45 bitrate=500 ! video/x-h264,stream-format=avc,alignment=au,profile=baseline ! kvssink stream-name="YourStreamName" storage-size=512 access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
```

### 例 3: Ubuntu の USB カメラから事前にエンコードされたビデオをストリーミングする
<a name="examples-gstreamer-plugin-launch-ex3"></a>

次のコマンドを実行すると、カメラが H.264 形式でエンコード済みのビデオを Kinesis Video Streams にストリーミングする GStreamer パイプラインが Ubuntu に作成されます。この例では [v4l2src](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page) GStreamer プラグインを使用します。

```
gst-launch-1.0 v4l2src do-timestamp=TRUE device=/dev/video0 ! h264parse ! video/x-h264,stream-format=avc,alignment=au ! kvssink stream-name="plugin" storage-size=512 access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
```

### 例 4: macOS のネットワークカメラからビデオをストリーミングする
<a name="examples-gstreamer-plugin-launch-ex4"></a>

次のコマンドを実行すると、ビデオをネットワークカメラから Kinesis Video Streams にストリーミングする GStreamer パイプラインが macOS に作成されます。この例では [rtspsrc](https://gstreamer.freedesktop.org/documentation/rtsp/rtspsrc.html#rtspsrc-page) GStreamer プラグインを使用します。

```
gst-launch-1.0 rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! h264parse ! video/x-h264, format=avc,alignment=au ! kvssink stream-name="YourStreamName" storage-size=512  access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
```

### 例 5: Windows のネットワークカメラからビデオをストリーミングする
<a name="examples-gstreamer-plugin-launch-ex5"></a>

次のコマンドを実行すると、ビデオをネットワークカメラから Kinesis Video Streams にストリーミングする GStreamer パイプラインが Windows に作成されます。この例では [rtspsrc](https://gstreamer.freedesktop.org/documentation/rtsp/rtspsrc.html#rtspsrc-page) GStreamer プラグインを使用します。

```
gst-launch-1.0 rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! video/x-h264, format=avc,alignment=au ! kvssink stream-name="YourStreamName" storage-size=512  access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
```

### 例 6: Raspberry Pi のカメラからビデオをストリーミングする
<a name="examples-gstreamer-plugin-launch-ex6"></a>

次のコマンドを実行すると、ビデオを Kinesis Video Streams にストリーミングする GStreamer パイプラインが Raspberry Pi に作成されます。この例では [v4l2src](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page) GStreamer プラグインを使用します。

```
gst-launch-1.0 v4l2src do-timestamp=TRUE device=/dev/video0 ! videoconvert ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! omxh264enc control-rate=1 target-bitrate=5120000 periodicity-idr=45 inline-header=FALSE ! h264parse ! video/x-h264,stream-format=avc,alignment=au,width=640,height=480,framerate=30/1,profile=baseline ! kvssink stream-name="YourStreamName" access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
```

### 例 7: Raspberry Pi と Ubuntu でオーディオとビデオの両方をストリーミングする
<a name="examples-gstreamer-plugin-launch-ex7"></a>

[gst-launch-1.0 コマンドを実行して、Raspberry-PI および Ubuntu でオーディオとビデオの両方のストリーミングを開始する方法](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/docs/linux.md#running-the-gst-launch-10-command-to-start-streaming-both-audio-and-video-in-raspberry-pi-and-ubuntu)について説明します。

### 例 8: macOS のデバイスソースからオーディオとビデオの両方をストリーミングする
<a name="examples-gstreamer-plugin-launch-ex8"></a>

[gst-launch-1.0 コマンドを実行して、MacOS でオーディオとビデオの両方のストリーミングを開始する方法](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/docs/macos.md#running-the-gst-launch-10-command-to-start-streaming-both-audio-and-raw-video-in-mac-os)について説明します。

### 例 9: オーディオとビデオの両方を含む MKV ファイルをアップロードする
<a name="examples-gstreamer-plugin-launch-ex9"></a>

[gst-launch-1.0 コマンドを実行して、オーディオとビデオの両方を含む MKV ファイルをアップロードする方法](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/docs/windows.md#running-the-gst-launch-10-command-to-upload-mkv-file-that-contains-both-audio-and-video)について説明します。h.264 および AAC でエンコードされたメディアを含む MKV テストファイルが必要です。

## Docker コンテナで GStreamer 要素を実行する
<a name="examples-gstreamer-plugin-docker"></a>

Docker は、コンテナを使用してアプリケーションを開発、デプロイ、実行するためのプラットフォームです。Docker を使用して GStreamer パイプラインを作成すると、Kinesis Video Streams の運用環境が標準化され、アプリケーションの構築と使用が合理化されます。

Docker をインストールして設定するには、以下を参照してください。
+ [Docker のダウンロード手順](https://docs.docker.com/engine/install/)
+ [Docker の開始方法](https://docs.docker.com/guides/getting-started/)

Docker をインストールしたら、次のいずれかの`docker pull`コマンドを使用して、Amazon Elastic Container Registry から Kinesis Video Streams C\+\+ プロデューサー SDK (および GStreamer プラグイン) をダウンロードできます。

Kinesis Video Streams プロデューサー SDK 要素を Docker コンテナのシンクとして GStreamer を実行するには、次の手順を実行します。

**Topics**
+ [Docker クライアントを認証する](#examples-gstreamer-plugin-docker-authenticate)
+ [Ubuntu、macOS、Windows、または Raspberry Pi の Docker イメージのダウンロード](#examples-gstreamer-plugin-docker-download)
+ [Docker イメージを実行する](#examples-gstreamer-plugin-docker-run)

### Docker クライアントを認証する
<a name="examples-gstreamer-plugin-docker-authenticate"></a>

イメージのプル元になる Amazon ECR レジストリに対して Docker クライアントを認証します。使用するレジストリごとに認証トークンを取得する必要があります。トークンは 12 時間有効です。詳細については、*Amazon Elastic Container Registry ユーザーガイド*の[レジストリの認証](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html#registry_auth)を参照してください。

**Example : Amazon ECR を使用して認証する**  
Amazon ECR で認証するには、次のコマンドをコピーして貼り付けます。  

```
sudo aws ecr get-login-password --region us-west-2 | docker login -u AWS --password-stdin https://546150905175.dkr.ecr.us-west-2.amazonaws.com
```
成功すると、`Login Succeeded` が出力されます。

### Ubuntu、macOS、Windows、または Raspberry Pi の Docker イメージのダウンロード
<a name="examples-gstreamer-plugin-docker-download"></a>

オペレーティングシステムに応じて次のコマンドのいずれかを使用し、Docker イメージを Docker 環境にダウンロードします。

#### Ubuntu の Docker イメージのダウンロード
<a name="examples-gstreamer-plugin-docker-download-ubuntu"></a>

```
sudo docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux:latest
```

#### macOS の Docker イメージのダウンロード
<a name="examples-gstreamer-plugin-docker-download-macos"></a>

```
docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux:latest
```

#### Windows の Docker イメージのダウンロード
<a name="examples-gstreamer-plugin-docker-download-windows"></a>

```
docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-windows:latest
```

#### Raspberry Pi の Docker イメージのダウンロード
<a name="examples-gstreamer-plugin-docker-download-rpi"></a>

```
sudo docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-raspberry-pi:latest
```

イメージが正常に追加されたことを確認するには、次のコマンドを使用します。

```
docker images
```

### Docker イメージを実行する
<a name="examples-gstreamer-plugin-docker-run"></a>

オペレーティングシステムに応じて、次のコマンドのいずれかを使用して Docker イメージを実行します。

#### Ubuntu で Docker イメージを実行する
<a name="examples-gstreamer-plugin-docker-run-ubuntu"></a>

```
sudo docker run -it --network="host" --device=/dev/video0 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux /bin/bash
```

#### macOS で Docker イメージを実行する
<a name="examples-gstreamer-plugin-docker-run-macos"></a>

```
sudo docker run -it --network="host" 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux /bin/bash
```

#### Windows で Docker イメージを実行する
<a name="examples-gstreamer-plugin-docker-run-windows"></a>

```
docker run -it 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-windows {{AWS_ACCESS_KEY_ID}} {{AWS_SECRET_ACCESS_KEY}} {{RTSP_URL}} {{STREAM_NAME}}
```

#### Raspberry Pi で Docker イメージを実行する
<a name="examples-gstreamer-plugin-docker-run-rpi"></a>

```
sudo docker run -it --device=/dev/video0 --device=/dev/vchiq -v /opt/vc:/opt/vc 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-raspberry-pi /bin/bash
```

Docker はコンテナを起動し、コンテナ内でコマンドを使用するためのコマンドプロンプトを表示します。

コンテナ内で、次のコマンドを使用して環境変数を設定します。

```
export LD_LIBRARY_PATH=/opt/awssdk/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib:$LD_LIBRARY_PATH
export PATH=/opt/awssdk/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/bin:$PATH
export GST_PLUGIN_PATH=/opt/awssdk/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib:$GST_PLUGIN_PATH
```

`kvssink` を使用して `gst-launch-1.0` へのストリーミングを開始し、デバイスとビデオソースに適したパイプラインを実行します。パイプラインの例については、「」を参照してください[GStreamer 起動コマンドの例](#examples-gstreamer-plugin-launch)。