例: Kinesis Video Streams プロデューサーSDKGStreamerプラグイン - kvssink - Amazon Kinesis Video Streams

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

例: Kinesis Video Streams プロデューサーSDKGStreamerプラグイン - kvssink

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

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

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 要素をダウンロード、構築、設定する

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 デバイスの場合は v4l2src、RTSPデバイスの場合は rtspsrc です。プロデューサー に動画を送信するシンク (パイプラインの最終送信先) kvssinkとして を指定します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 起動コマンドの例

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

例 1: Ubuntu のRTSPカメラからビデオをストリーミングする

次のコマンドは、rtspsrc GStreamerプラグインを使用して、ネットワークRTSPカメラからストリーミングするGStreamerパイプラインを Ubuntu に作成します。

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 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カメラから事前にエンコードされたビデオをストリーミングする

次のコマンドは、カメラが既に H.264 形式でエンコードしたビデオを Kinesis Video Streams にストリーミングするGStreamerパイプラインを Ubuntu に作成します。この例では、v4l2src 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 のネットワークカメラからビデオをストリーミングする

次のコマンドは、ネットワークカメラから Kinesis Video Streams にビデオをストリーミングするGStreamerパイプラインを macOS に作成します。この例では、rtspsrc 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 のネットワークカメラからビデオをストリーミングする

次のコマンドは、ネットワークカメラから Kinesis Video Streams にビデオをストリーミングするGStreamerパイプラインを Windows に作成します。この例では、rtspsrc 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 のカメラからビデオをストリーミングする

次のコマンドは、Kinesis Video Streams にビデオをストリーミングするGStreamerパイプラインを Raspberry Pi に作成します。この例では、v4l2src 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 でオーディオとビデオの両方をストリーミングする

gst-launch-1.0 コマンドを実行して、Raspberry-PI および Ubuntu でオーディオとビデオの両方のストリーミングを開始する方法について説明します。

例 8: macOS のデバイスソースからオーディオとビデオの両方をストリーミングする

gst-launch-1.0 コマンドを実行して、MacOS でオーディオとビデオの両方のストリーミングを開始する方法について説明します。

例 9: オーディオとビデオの両方を含むMKVファイルをアップロードする

gst-launch-1.0 コマンドを実行して、オーディオ とビデオ の両方を含むMKVファイルをアップロードする方法について説明します。h.264 とAACエンコードされたメディアを含む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 起動コマンドの例