翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
例: Kinesis Video Streams プロデューサーSDKGStreamerプラグイン - kvssink
このトピックでは、GStreamerプラグインSDKとして使用する Amazon Kinesis Video Streams プロデューサーを構築する方法について説明します。
トピック
GStreamer
GStreamer プラグインは、Kinesis Video Streams プロデューサーによって提供される機能をGStreamerシンク要素 SDKにカプセル化することで、Kinesis Video Streams へのビデオストリームの転送を自動的に管理しますkvssink
。このGStreamerフレームワークは、カメラやその他のビデオソースなどのデバイスからメディアフローを構築して、さらなる処理、レンダリング、またはストレージを行うための標準的なマネージド環境を提供します。
GStreamer パイプラインは通常、ソース (ビデオカメラ) とシンク要素 (ビデオをレンダリングするプレイヤー、またはオフライン取得用のストレージ) 間のリンクで構成されます。この例では、ビデオソース (ウェブカメラまたは IP カメラ) のシンク またはメディア送信先としてプロデューサーSDK要素を使用します。をカプセル化するプラグイン要素はSDK、ビデオストリームを Kinesis Video Streams に送信します。
このトピックでは、通常中間エンコーディングステージ (H.264 エンコーディングを使用) を介して Kinesis Video Streams RTSP に接続されたウェブカメラやストリームなどのビデオソースからビデオをストリーミングできるGStreamerメディアパイプラインを構築する方法について説明します。動画ストリームが Kinesis 動画ストリームとして利用可能になったら、 を使用して動画ストリームパーサーライブラリを使用してカメラからの出力を監視するの処理、再生、保存、分析を行うことができます。
GStreamer 要素をダウンロード、構築、設定する
GStreamer プラグインの例は、Kinesis Video Streams C++ プロデューサー に含まれていますSDK。SDK 前提条件とダウンロードの詳細については、「」を参照してくださいC++ プロデューサーライブラリコードをダウンロードして設定する。
プロデューサーSDKGStreamerシンクは、macOS 、Ubuntu、Raspberry Pi、または Windows で動的ライブラリとして構築できます。GStreamer プラグインは build
ディレクトリにあります。このプラグインをロードするには、 にある必要がありますGST_PLUGIN_PATH
。次のコマンドを実行します。
export GST_PLUGIN_PATH=`pwd`/build
注記
macOS では、Docker コンテナGStreamerで実行している場合にのみ、ネットワークカメラからビデオをストリーミングできます。Docker コンテナ内の macOS 上のUSBカメラからのビデオのストリーミングはサポートされていません。
GStreamer 要素を実行する
Kinesis Video Streams プロデューサーSDK要素GStreamerをシンクとして実行するには、 gst-launch-1.0
コマンドを使用します。GStreamer プラグインが使用するのに適したアップストリーム要素を使用します。例えば、Linux システム上の v4l2 デバイスの場合は v4l2srckvssink
として を指定しますSDK。
kvssink
要素には、認証情報とリージョン の提供に加えて、次の必須パラメータがあります。
-
stream-name
– 送信先の Kinesis Video Streams の名前。
kvssink
のオプションのパラメータの詳細については、「GStreamer 要素パラメータリファレンス」を参照してください。
GStreamer プラグインとパラメータに関する最新情報については、GStreamer「プラグインgst-inspect-1.0
後に GStreamer要素またはプラグインの名前を使用して、その情報を出力し、デバイスで利用できることを確認することもできます。
gst-inspect-1.0 kvssink
構築がkvssink
失敗した場合、または GST_PLUGIN_PATH が正しく設定されていない場合、出力は次のようになります。
No such element or plugin 'kvssink'
GStreamer 起動コマンドの例
次の例は、kvssink
GStreamerプラグインを使用してさまざまなタイプのデバイスからビデオをストリーミングする方法を示しています。
例 1: Ubuntu のRTSPカメラからビデオをストリーミングする
次のコマンドは、rtspsrc
gst-launch-1.0 -v rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! h264parse ! kvssink stream-name="YourStreamName" storage-size=128
例 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 ! 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 のネットワークカメラからビデオをストリーミングする
次のコマンドは、ネットワークカメラから 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 と Ubuntu でオーディオとビデオの両方をストリーミングする
gst-launch-1.0 コマンドを実行して、Raspberry-PI および Ubuntu でオーディオとビデオの両方のストリーミングを開始する方法
例 8: macOS のデバイスソースからオーディオとビデオの両方をストリーミングする
gst-launch-1.0 コマンドを実行して、MacOS でオーディオとビデオの両方のストリーミングを開始する方法
例 9: オーディオとビデオの両方を含むMKVファイルをアップロードする
gst-launch-1.0 コマンドを実行して、オーディオ とビデオ の両方を含むMKVファイルをアップロード
Docker コンテナで GStreamer要素を実行する
Docker は、コンテナを使用してアプリケーションを開発、デプロイ、実行するためのプラットフォームです。Docker を使用してGStreamerパイプラインを作成すると、Kinesis Video Streams の運用環境が標準化され、アプリケーションの構築と使用が合理化されます。
Docker をインストールして設定するには、以下を参照してください。
Docker をインストールしたら、次のいずれかのdocker pull
コマンドを使用して、Amazon Elastic Container Registry から Kinesis Video Streams C++ プロデューサー SDK (およびGStreamerプラグイン) をダウンロードできます。
Kinesis Video Streams プロデューサーSDK要素GStreamerを Docker コンテナのシンクとして実行するには、次の手順を実行します。
Docker クライアントを認証する
Docker クライアントを、イメージのプル元の Amazon ECRレジストリに認証します。使用するレジストリごとに認証トークンを取得する必要があります。トークンは 12 時間有効です。詳細については、Amazon Elastic Container Registry ユーザーガイドのレジストリの認証を参照してください。
例 : 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 イメージのダウンロード
オペレーティングシステムに応じて次のコマンドのいずれかを使用し、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 イメージのダウンロード
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
kvssink
を使用して へのストリーミングを開始し、デバイスとビデオソースに適したパイプラインgst-launch-1.0
を実行します。パイプラインの例については、「」を参照してくださいGStreamer 起動コマンドの例。