

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

# Amazon Kinesis ビデオストリームにデータを送信する
<a name="gs-send-data"></a>

このセクションでは、カメラから前のセクションで作成した Kinesis ビデオストリームにメディアデータを送信する方法について説明します。このセクションでは、[C\$1\$1 プロデューサーライブラリを使用する](producer-sdk-cpp.md) を [例: Kinesis Video Streams プロデューサー SDK GStreamer プラグイン - kvssink](examples-gstreamer-plugin.md) プラグインとして使用します。

このチュートリアルでは、さまざまなオペレーティングシステム上のさまざまなデバイスからメディアを送信するために、Kinesis Video Streams C\$1\$1 プロデューサーライブラリと、カメラやその他のメディアソースへのアクセスを標準化するオープンソースのメディアフレームワークである [GStreamer](https://gstreamer.freedesktop.org/) を使用します。

**Topics**
+ [SDK とサンプルを構築する](#send-data-build-sdk)
+ [サンプルを実行して Kinesis Video Streams にメディアをアップロードする](#send-data-run-samples)
+ [確認オブジェクトを確認する](#gs-review-acks)

## SDK とサンプルを構築する
<a name="send-data-build-sdk"></a>

SDK とサンプルは、コンピュータまたは で構築できます AWS Cloud9。以下の適切な手順に従ってください。

------
#### [ Build on your computer ]

[readme ファイル](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp)の指示に従って、プロデューサーライブラリとサンプルアプリケーションを構築します。

これには、以下が含まれます。
+ 依存関係をインストールする
+ リポジトリのクローン作成
+ **CMake** を使用して **makefile **を生成する
+ **make** を使用したバイナリファイルの構築

------
#### [ Build in AWS Cloud9 ]

Kinesis Video Streams にアップロードするには、次の手順に従います AWS Cloud9。コンピュータに何かをダウンロードする必要はありません。

1. で AWS マネジメントコンソール、 を開きます[AWS Cloud9](https://us-west-2.console.aws.amazon.com/cloud9control/home)。

   **環境の作成** を選択します。

1. **環境の作成**画面で、以下を完了します。
   + **名前** - 新しい環境の名前を入力します。
   + **プラットフォーム** - **Ubuntu Server 22.04 LTS** を選択します。

   他のフィールドはデフォルトの選択のままにすることができます。

1. 環境が作成されたら、Cloud9 IDE 列で **Open** を選択します。 **Cloud9 ** 

   画面の中央下部に が表示されます`Admin:~/environment $`。これは (Amazon EC2) ターミナルです AWS Cloud9 。
**注記**  
ターミナルを誤って閉じた場合は、**Window**, **New Terminal** を選択します。

   ターミナルで次のコマンドを実行して、ボリュームを 20 GiB に変更します。

   1.  スクリプトをダウンロードします。

      ```
      wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/resize_volume.sh
      ```

   1. スクリプトに実行アクセス許可を付与します。

      ```
      chmod +x resize_volume.sh
      ```

   1. スクリプトを実行します。

      ```
      ./resize_volume.sh
      ```

1. Advanced Packaging Tool (APT) を使用して、インストールまたは更新できるすべてのソフトウェアに関する最新情報を取得します。

   このコマンドはソフトウェア自体を更新しませんが、利用可能な最新バージョンをシステムが把握していることを確認します。

   ```
   sudo apt-get update
   ```

1. C\$1\$1 プロデューサー SDK の依存関係をインストールします。

   ```
   sudo apt-get install -y cmake m4 git build-essential pkg-config libssl-dev libcurl4-openssl-dev \
   liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
   gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good \
   gstreamer1.0-plugins-ugly gstreamer1.0-tools
   ```

1. git を使用して C\$1\$1 プロデューサー SDK のクローンを作成します。

   ```
   git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git
   ```

1. ビルドディレクトリを準備します。

   ```
   cd amazon-kinesis-video-streams-producer-sdk-cpp
   mkdir build
   cd build
   ```

1. CMake を使用して makefile を生成します。

   ```
   cmake .. -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_DEPENDENCIES=OFF
   ```

   予想される出力の終わりは次のようになります。

   ```
   -- Build files have been written to: /home/ubuntu/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build
   ```

1. make を使用して SDK とサンプルアプリケーションをコンパイルし、最終的な実行可能ファイルを構築します。

   ```
   make
   ```

   予想される出力の終わりは次のようになります。

   ```
   [100%] Linking CXX executable kvs_gstreamer_file_uploader_sample
   [100%] Built target kvs_gstreamer_file_uploader_sample
   ```

1. サンプルファイルが構築されたことを確認します。現在のディレクトリ内のファイルを一覧表示します。

   ```
   ls
   ```

   次のファイルが存在することを確認します。
   + kvs\$1gstreamer\$1sample
   + libgstkvssink.so

1. (オプション) GST\$1PLUGIN\$1PATH 環境変数の設定をシェルの起動スクリプトに追加できます。これにより、新しいターミナルセッション中に GST\$1PLUGIN\$1PATH が正しく設定されます。では AWS Cloud9、シェルの起動スクリプトは です`~/.bashrc`。

   次のコマンドを実行して、シェルの起動スクリプトの末尾に コマンドを追加します。

   ```
   echo "export GST_PLUGIN_PATH=~/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build" >> ~/.bashrc
   ```

   次のように入力して、シェルの起動スクリプトを実行します。

   ```
   source ~/.bashrc
   ```

   GST\$1PLUGIN\$1PATH が設定されていることを確認します。

   ```
   echo $GST_PLUGIN_PATH
   ```

   出力を正しく設定すると、次の出力が表示されます。出力が空白の場合、環境変数が正しく設定されていません。

   ```
   /home/ubuntu/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build
   ```

------

## サンプルを実行して Kinesis Video Streams にメディアをアップロードする
<a name="send-data-run-samples"></a>

サンプルアプリケーションは IMDS 認証情報をサポートしていません。ターミナルで、IAM ユーザーまたはロールの AWS 認証情報と、ストリームがあるリージョンをエクスポートします。

```
export AWS_ACCESS_KEY_ID=YourAccessKey
export AWS_SECRET_ACCESS_KEY=YourSecretKey
export AWS_DEFAULT_REGION=YourAWSRegion
```

一時的な AWS 認証情報を使用している場合は、セッショントークンもエクスポートします。

```
export AWS_SESSION_TOKEN=YourSessionToken
```

------
#### [ .mp4 files ]

サンプル .mp4 ビデオをダウンロードして Kinesis Video Streams にアップロードします。

```
wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/sample.mp4
```

ビデオ仕様:
+ **解像度** - 1280 x 720 ピクセル 
+ **フレームレート** - 30 フレーム/秒
+ **期間** - 14.0 秒
+ **ビデオエンコーディング** - H.264、トラック 1 内
+ **キーフレーム** - 3 秒ごとにフラグメント期間 (写真のグループ (GoP) サイズとも呼ばれます) は 3 秒で、最後のフラグメントは 2 秒です。

以前に作成したストリームの名前で次のコマンドを実行します。ストリームをまだ作成していない場合は、「」を参照してください[Amazon Kinesis ビデオストリームを作成する](gs-createstream.md)。

```
./kvs_gstreamer_sample YourStreamName ./sample.mp4
```

------
#### [ Sample video from GStreamer ]

GStreamer を使用してビデオを生成するには、次のコマンドを使用します。

GStreamer プラグインの場所を `kvssink` GStreamer に伝えます。ビルドディレクトリで、 `libgstkvssink.so` ファイルを含むフォルダへのパスを指定します。

ビルドディレクトリから、次のコマンドを実行します。

```
export GST_PLUGIN_PATH=`pwd`
```

この GStreamer パイプラインは、640 x 480 ピクセルの解像度で 1 秒あたり 10 フレームで実行される標準テストパターンを持つライブテストビデオストリームを生成します。オーバーレイが追加され、現在のシステム日時が表示されます。その後、ビデオは H.264 形式にエンコードされ、キーフレームは最大 10 フレームごとに生成され、フラグメント期間 (写真のグループ (GoP) サイズとも呼ばれます) は 1 秒になります。 は H.264 でエンコードされたビデオストリーム`kvssink`を受け取り、Matroska (MKV) コンテナ形式にパッケージ化して、Kinesis ビデオストリームにアップロードします。

次のコマンドを実行します。

```
gst-launch-1.0 -v videotestsrc is-live=true \
  ! video/x-raw,framerate=10/1,width=640,height=480 \
  ! clockoverlay time-format="%a %B %d, %Y %I:%M:%S %p" \
  ! x264enc bframes=0 key-int-max=10 \
  ! h264parse \
  ! kvssink stream-name="YourStreamName"
```

GStreamer パイプラインを停止するには、ターミナルウィンドウを選択し、**Ctrl\$1C **を押します。

------

**注記**  
GStreamer プラグインを使用してカメラまたは USB カメラから RTSP ストリームからビデオをストリーミングする方法の詳細については、「」を参照してください[例: Kinesis Video Streams プロデューサー SDK GStreamer プラグイン - kvssink](examples-gstreamer-plugin.md)。

## 確認オブジェクトを確認する
<a name="gs-review-acks"></a>

アップロード中、Kinesis Video Streams はアップロードを実行するクライアントに確認オブジェクトを返します。これらはコマンド出力に出力されます。例は次のようになります。

```
{"EventType":"PERSISTED","FragmentTimecode":1711124585823,"FragmentNumber":"12345678901234567890123456789012345678901234567"}
```

確認応答の `EventType`が の場合`PERSISTED`、Kinesis Video Streams は取得、分析、長期保存のためにこのメディアのチャンクを永続的に保存して暗号化したことを意味します。

確認の詳細については、「」を参照してください[PutMedia](API_dataplane_PutMedia.md)。