翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Kinesis ビデオストリームにデータを送信する
このセクションでは、カメラから、前のセクションで作成した Kinesis ビデオストリームにメディアデータを送信する方法について説明します。このセクションでは、C++ プロデューサーライブラリを使用する を 例: Kinesis Video Streams プロデューサーSDKGStreamerプラグイン - kvssink プラグインとして使用します。
このチュートリアルでは、さまざまなオペレーティングシステム上のさまざまなデバイスからメディアを送信するために、Kinesis Video Streams C++ プロデューサーライブラリ とGStreamer、カメラやその他のメディアソースへのアクセスを標準化するオープンソースのメディアフレームワーク を使用します。
SDK および サンプルの構築
SDK および サンプルは、コンピュータまたは で構築できます AWS Cloud9。以下の適切な手順に従ってください。
- Build on your computer
-
readme ファイルの指示に従って、プロデューサーライブラリとサンプルアプリケーションを構築します。
これには、以下が含まれます。
-
依存関係をインストールする
-
リポジトリのクローン作成
-
CMake を使用した makefile の生成
-
make を使用したバイナリファイルの構築
- Build in AWS Cloud9
-
で Kinesis Video Streams にアップロードするには、次の手順に従います AWS Cloud9。コンピュータに何かをダウンロードする必要はありません。
-
で AWS Management Console、 を開きますAWS Cloud9。
環境の作成 を選択します。
-
環境の作成画面で、以下を完了します。
他のフィールドはデフォルトの選択のままにしておくことができます。
-
環境が作成されたら、Cloud9 IDE 列で Open を選択します。
画面の下中央エリアに が表示されますAdmin:~/environment $
。これは (Amazon EC2) ターミナルです AWS Cloud9 。
誤ってターミナルを閉じた場合は、ウィンドウ 、新しいターミナル を選択します。
ターミナルで次のコマンドを実行して、ボリュームを 20 GiB に変更します。
-
スクリプトをダウンロードします。
wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/resize_volume.sh
-
スクリプトの実行権限を付与します。
chmod +x resize_volume.sh
-
スクリプトを実行します。
./resize_volume.sh
-
Advanced Packaging Tool () を使用して、インストールまたは更新できるすべてのソフトウェアに関する最新情報を取得しますAPT。
このコマンドではソフトウェア自体は更新されませんが、利用可能な最新バージョンがわかります。
sudo apt-get update
-
C++ プロデューサー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
-
git を使用して C++ プロデューサー のクローンを作成しますSDK。
git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git
-
ビルドディレクトリを準備します。
cd amazon-kinesis-video-streams-producer-sdk-cpp
mkdir build
cd build
-
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
-
make を使用して SDKおよび サンプルアプリケーションをコンパイルし、最終的な実行可能ファイルを構築します。
make
予想される出力の終わりは次のようになります。
[100%] Linking CXX executable kvs_gstreamer_file_uploader_sample
[100%] Built target kvs_gstreamer_file_uploader_sample
-
サンプルファイルが構築されたことを確認します。現在のディレクトリ内のファイルを一覧表示します。
ls
次のファイルが存在することを確認します。
-
kvs_gstreamer_sample
-
libgstkvssink.so
-
(オプション) シェルの起動スクリプトに GST_PLUGIN_PATH 環境変数の設定を追加できます。これにより、新しいターミナルセッション中に GST_PLUGIN_PATH が正しく設定されます。では AWS Cloud9、シェルの起動スクリプトは です~/.bashrc
。
次のコマンドを実行して、シェルの起動スクリプトの末尾にコマンドを追加します。
echo "export GST_PLUGIN_PATH=~/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build" >> ~/.bashrc
次のように入力して、シェルの起動スクリプトを実行します。
source ~/.bashrc
GST_PLUGIN_PATH が設定されていることを確認します。
echo $GST_PLUGIN_PATH
出力を正しく設定すると、次の出力が表示されます。出力が空白の場合、環境変数が正しく設定されていません。
/home/ubuntu/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build
サンプルを実行して Kinesis Video Streams にメディアをアップロードする
サンプルアプリケーションは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
ビデオ仕様:
以前に作成したストリームの名前を指定して、次のコマンドを実行します。ストリームをまだ作成していない場合は、「」を参照してくださいAmazon Kinesis ビデオストリームを作成する。
./kvs_gstreamer_sample YourStreamName
./sample.mp4
- Sample video from GStreamer
-
を使用してビデオを生成するには、次のコマンドを使用しますGStreamer。
kvssink
GStreamer プラグインGStreamerの場所を指定します。ビルドディレクトリで、 libgstkvssink.so
ファイルを含むフォルダへのパスを指定します。
ビルドディレクトリから、次のコマンドを実行します。
export GST_PLUGIN_PATH=`pwd`
このGStreamerパイプラインは、1 秒あたり 10 フレーム、解像度 640 x 480 ピクセルで実行される標準テストパターンのライブテストビデオストリームを生成します。オーバーレイが追加され、現在のシステムの日時が表示されます。その後、ビデオは H.264 形式にエンコードされ、キーフレームは最大 10 フレームごとに生成され、フラグメント期間 (写真のグループ (GoP) サイズとも呼ばれます) は 1 秒になります。 kvssink
は H.264 でエンコードされたビデオストリームを受け取り、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+C を押します。
確認オブジェクトを確認する
アップロード中、Kinesis Video Streams はアップロードを実行するクライアントに確認オブジェクトを返します。これらはコマンド出力に出力されます。例は次のようになります。
{"EventType":"PERSISTED","FragmentTimecode":1711124585823
,"FragmentNumber":"12345678901234567890123456789012345678901234567
"}
確認応答の EventType
が の場合PERSISTED
、Kinesis Video Streams は、取得、分析、長期保存のために、このメディアのチャンクを永続的に保存および暗号化したことを意味します。
確認応答の詳細については、「」を参照してくださいPutMedia。