翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
例: Kinesis Video Streams プロデューサー SDK GStreamer プラグイン
このトピックでは、Amazon Kinesis Video Streams プロデューサー SDK をビルドして、GStreamer プラグインとして使用する方法を示します。
トピック
GStreamer
GStreamer プラグインは、Kinesis Video Streams プロデューサー SDK によって提供される機能を GStreamer のシンクエレメント (kvssink
) にカプセル化することで、Kinesis Video Streams へのビデオストリームの転送を自動的に管理します。GStreamer フレームワークは、カメラや他のビデオソースのようなデバイスからのメディアフローを構築して処理、レンダリング、保存を行うための標準的なマネージド環境を提供します。
GStreamer パイプラインは通常、ソース (ビデオカメラ) とシンクエレメント (ビデオをレンダリングするプレーヤーやオフラインで取得するためのストレージ) 間のリンクで構成されます。この例では、プロデューサー SDK エレメントをビデオソース (ウェブカメラまたは IP カメラ) のシンク、つまりメディア送信先として使用します。SDK をカプセル化したプラグインエレメントが、その後ビデオストリームの Kinesis Video Streams への送信を管理します。
このトピックでは、ウェブカメラや RTSP ストリームなどのビデオソースからビデオをストリーミングできる GStreamer メディアパイプラインの構築方法を説明します。これは通常、中間エンコードステージ (H.264 エンコーディングを使用) を経由して Kinesis Video Streams に接続されます。ビデオストリームが Kinesis ビデオストリームとして利用できる場合、Kinesis ビデオストリームパーサーライブラリを使用してビデオストリームのさらなる処理、再生、保存、または分析を行うことができます。

GStreamer エレメントのダウンロード、構築、設定
GStreamer プラグインの例は Kinesis Video Streams C++ プロデューサー SDK に含まれています。SDK の前提条件およびダウンロードの詳細については、「ステップ 1: C++ プロデューサーライブラリコードをダウンロードして設定する」を参照してください。
プロデューサー SDK GStreamer シンクは、macOS、Ubuntu、Raspberry Pi、または Windows で動的ライブラリとして構築できます。GStreamer プラグインは build
ディレクトリにあります。このプラグインをロードするには、プラグインが GST_PLUGIN_PATH
にある必要があります。次のコマンドを実行します。
export GST_PLUGIN_PATH=`pwd`/build
GStreamer エレメントを実行します。
Kinesis Video Streams プロデューサー SDK エレメントをシンクとして GStreamer を実行するには、gst-launch-1.0
コマンドを実行します。GStreamer プラグインで使用する適切な設定を使用します。たとえば、Linux システム上の v4l2 デバイスには v4l2srckvssink
をシンク (パイプラインの最終的な送信先) としてを指定し、ビデオをプロデューサー SDK に送信します。
kvssink
エレメントには以下の必須パラメータがあります。
-
stream-name
: 送信先 Kinesis ビデオストリームの名前。 -
storage-size
: デバイスのストレージサイズ (キロバイト)。デバイスストレージの構成の詳細については、「StorageInfo」を参照してください。 -
access-key
: Kinesis Video Streams にアクセスするために使用する、アクセスキー。AWSこのパラメータかcredential-path
のどちらかを指定する必要があります。 -
secret-key
: Kinesis Video Streams にアクセスするために使用する、AWSシークレットキー。このパラメータかcredential-path
のどちらかを指定する必要があります。 -
credential-path
: Kinesis Video Streams にアクセスするための認証情報を含むファイルへのパス。認証情報の変更の詳細については、「IAM ユーザーのアクセスキーの管理」を参照してください。このパラメータか、access-key
およびsecret-key
かの、どちらかを指定する必要があります。
kvssink
のオプションのパラメータの詳細については、「GStreamer エレメントパラメータのリファレンス」を参照してください。
GStreamer プラグインとパラメータの最新情報については、GStreamer Plugins
gst-inspect-1.0 kvssink
ビルドに失敗した場合、または GST_PLUGIN_PATH が正しく設定されていない場合、出力は次のようになります。
No such element or plugin 'kvssink'
GStreamer 起動コマンドの例
以下の例で、GStreamer プラグインを使用して異なるタイプのデバイスからビデオをストリーミングする方法を示します。
例 1: Ubuntu の RTSP カメラからビデオをストリーミングする
次のコマンドを実行すると、ネットワーク RTSP カメラからストリーミングする GStreamer パイプラインが Ubuntu に作成されます。これは rtspsrc
$ 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"
例 2: Ubuntu の USB カメラからビデオをエンコードしてストリーミングする
次のコマンドを実行すると、USB カメラからのストリームを H.264 形式でエンコードし、Kinesis Video Streams にストリーミングする GStreamer パイプラインが Ubuntu に作成されます。この例では v4l2src
$ 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 カメラからエンコード済みビデオをストリーミングする
次のコマンドを実行すると、カメラが H.264 形式でエンコード済みのビデオを Kinesis Video Streams にストリーミングする GStreamer パイプラインが Ubuntu に作成されます。この例では v4l2src
$ 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 のネットワークカメラからビデオをストリーミングする
次のコマンドを実行すると、ビデオをネットワークカメラから Kinesis Video Streams にストリーミングする GStreamer パイプラインが macOS に作成されます。この例では rtspsrc
$ 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"
例 5: Windows のネットワークカメラからビデオをストリーミングする
次のコマンドを実行すると、ビデオをネットワークカメラから Kinesis Video Streams にストリーミングする GStreamer パイプラインが Windows に作成されます。この例では rtspsrc
$ 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 のカメラからビデオをストリーミングする
次のコマンドを実行すると、ビデオを Kinesis Video Streams にストリーミングする GStreamer パイプラインが Raspberry Pi に作成されます。この例では v4l2src
$ 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 のカメラからビデオをストリーミングしてリージョンを指定する
次のコマンドを実行すると、ビデオを米国東部 (バージニア北部) リージョンの Kinesis Video Streams にストリーミングする GStreamer パイプラインが Raspberry Pi に作成されます。この例では v4l2src
$ 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"
例 8: Raspberry-PI と Ubuntu でオーディオとビデオの両方をストリーミングする
gst-launch-1.0 コマンドを実行して、Raspberry-PI および Ubuntu でオーディオとビデオの両方のストリーミングを開始する方法
例 9: MacOS で、オーディオとビデオの両方をストリーミングする
gst-launch-1.0 コマンドを実行して、MacOS でオーディオとビデオの両方のストリーミングを開始する方法
例 10: オーディオとビデオの両方を含む MKV ファイルのアップロード
gst-launch-1.0 コマンドを実行して、オーディオとビデオの両方を含む MKV ファイルをアップロードする方法
Docker コンテナで GStreamer エレメントを実行します。
Docker は、コンテナを使用してアプリケーションを開発、デプロイ、実行するためのプラットフォームです。Docker を使用して GStreamer パイプラインを作成することで Kinesis Video Streams のオペレーティング環境が標準化され、アプリケーションのビルドおよび実行を大幅に簡素化できます。
Docker をインストールして設定するには、以下を参照してください。
Docker をインストールした後、docker pull
コマンドを使用して Kinesis Video Streams C++ プロデューサー SDK (および GStreamer プラグイン) を Amazon Elastic Container Registry からダウンロードできます。
Docker コンテナで Kinesis Video Streams プロデューサー SDK エレメントをシンクとして GStreamer を実行するには、次の操作を行います。
Docker クライアントを認証する
イメージのプル元になる Amazon ECR レジストリに対して Docker クライアントを認証します。使用するレジストリごとに認証トークンを取得する必要があり、トークンは 12 時間有効です。詳細については、Amazon Elastic Container Registry ユーザーガイドの「レジストリの認証」を参照してください。
例 : Amazon ECR を使用して認証する
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 イメージのダウンロード
オペレーティングシステムに応じて次のコマンドのいずれかを使用し、Docker イメージを Docker 環境にダウンロードします。
Ubuntu の Docker イメージのダウンロード
sudo docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux:latest
macOS の Docker イメージのダウンロード
sudo docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux:latest
Windows の Docker イメージのダウンロード
docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-windows:latest
Raspberry Pi の Docker イメージのダウンロード
sudo docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-raspberry-pi:latest
イメージが正常に追加されたことを確認するには、次のコマンドを使用します。
docker images
Docker イメージを実行する
オペレーティングシステムに応じて、次のコマンドのいずれかを使用して Docker イメージを実行します。
Ubuntu で Docker イメージを実行する
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 イメージを実行する
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 イメージを実行する
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 イメージを実行する
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
デバイスに適した gst-launch-1.0
コマンドを使用してカメラからのストリーミングを開始します。
macOS では、Docker コンテナで GStreamer を実行する場合にのみネットワークカメラからビデオをストリーミングできます。Docker コンテナで macOS の USB カメラからのビデオのストリーミングはサポートされていません。
gst-launch-1.0
コマンドを使用してローカルウェブカメラまたはネットワーク RTSP カメラに接続する礼については、「起動コマンド」を参照してください。