ステップ 5: ストリーミングソフトウェアの設定
以下の方法で Amazon IVS にストリーミング (低レイテンシー) できます。
-
RTMPS をサポートする、ネイティブの IVS Broadcast SDK。特に本稼働シナリオでは、こちらをお勧めします。
-
Amazon IVS コンソール – ストリームのテストに適しています。
-
その他のストリーミングソフトウェアおよびハードウェアエンコーダー — RTMP、RTMPS、または SRT プロトコルをサポートする任意のストリーミングエンコーダーを使用できます。Open Broadcast Software (OBS) と FFmpeg を RTMPS と SRT で使用するいくつかの例を以下に示します。RTMPS は、暗号化された TLS ストリームを使用して、高セキュリティを実現します。
キーエンコーダの設定は、キーフレーム間隔(2 秒)と解像度/ビットレート/フレームレート(相互に関連する)です。エンコーダ設定の詳細については、次を参照してください。
-
Amazon IVS ユーザーガイドの「ストリーミング設定」を参照してください。
-
ブログ記事: Setting Up for Streaming with Amazon Interactive Video Service
注意:
-
Amazon IVS ストリームの最大継続時間は 48 時間です。その後、ストリームは終了し、ストリーミングセッションは切断されます。(自動または手動で) 正常に再接続すると、新しいストリームが開始されます。
-
エンコーダーが (一時的なネットワークの問題などの原因で) データの送信を停止した場合、Amazon IVS は 30 秒間待機します。この間にブロードキャスターのデータが受信されない場合、Amazon IVS の接続が解除されます。
Amazon IVS Broadcast SDK によるストリーミング
iOS または Android アプリケーションからブロードキャストするには、Amazon IVS Broadcast SDK を使用できます。ブロードキャスト SDK は Amazon IVS アーキテクチャを活用し、Amazon IVS と共に継続的な改善と新しい機能を見ていきます。ネイティブのモバイルブロードキャスト SDK として、アプリケーションおよびユーザーがアプリケーションにアクセスするデバイスに対するパフォーマンスへの影響を最小限に抑えるように設計されています。
以下からブロードキャストするには..。 | 以下を使用できます..。 | メモ |
---|---|---|
Android または iOS アプリケーション | Amazon IVS Android または iOS Broadcast SDK | ネイティブのモバイルブロードキャスト SDK として、アプリケーションおよびユーザーがアプリケーションにアクセスするデバイスに対するパフォーマンスへの影響を最小限に抑えるように設計されています。 |
ウェブ環境 | Amazon IVS Web Broadcast SDK | Web Broadcast SDK として、Amazon IVS Web Broadcast SDK を使用すると、WebRTC を使用してウェブ環境からブロードキャストできます。クロスブラウザとクロスプラットフォームをサポートします。 |
詳細については、「IVS Broadcast SDK | Low-Latency Streaming」を参照してください。
Amazon IVS コンソールを使用したストリーミング
-
Amazon IVS コンソール
を開きます。 (AWS マネジメントコンソール
から Amazon IVS コンソールにアクセスすることもできます。) -
ナビゲーションペインで、[チャンネル] を選択します。(ナビゲーションペインが折りたたまれている場合は、ハンバーガーアイコンを選択して展開します)
-
ブロードキャスト先のチャネルを選択し、その詳細ページに移動します。
-
[ブロードキャスト] タブを選択します。(これらのタブは、[一般的な設定] セクションの下にあります)
-
カメラとマイクへの IVS コンソールアクセスを許可するように求められます。これらの権限を許可してください。
-
[ブロードキャスト] タブの下部にあるドロップダウンボックスを使用して、マイクとカメラの入力デバイスを選択します。
-
ストリーミングを開始するには、[ブロードキャストを開始] を選択します。
-
ライブストリームを視聴するには、[再生] タブに移動します。
注: ストリームを開始した後、[再生] タブで視聴できるようになるまでに、短い遅延 (通常は 30 秒未満) が発生することが予想されます。
この機能を使うと、複数のチャネルに同時にブロードキャストできます。
注: コンソールからのストリーミングはリソースを消費するため、ライブ動画入力コストが発生します。詳細については、「IVS 料金表」の「ライブ動画入力にかかるコスト
RTMPS を使用した OBS Studio によるストリーミング
(OBS Studio
OBS Studio v30.2 以降をすぐに起動して実行するには、次の手順に従ってください。
-
ソフトウェアをダウンロードしてインストールします: https://obsproject.com/download
。 -
OBS Studio を初めてロードするときに表示される、OBS Studio の自動設定ウィザードを実行します。ステップに従い、デフォルト値を受け入れます。
-
[ストリーム情報] で、[サービス] ドロップダウンから [Amazon IVS] を選択し、ストリームキーを入力します。
Amazon IVS コンソールでチャネルを作成した場合、OBS に入力するストリームキーはコンソールのストリームキーになります (
sk_us-west-2_abcd1234efgh5678ijkl
)。AWS CLI でチャネルを作成した場合、OBS に入力するストリームキーは CLI レスポンスの streamKey 値 になります (
sk_us-west-2_abcd1234efgh5678ijkl
)。IVS チャネルがマルチトラックビデオ入力用に設定されている場合は、[マルチトラック動画を有効にする] を選択します。オプションで、最大動画トラック数と最大ストリーミング帯域幅の設定を行います。これは、自動設定されたストリーム設定を制限するために使用される設定です。
-
動画出力の解像度とビットレートについては、「Amazon IVS ストリーミング設定」の「チャネルタイプ」を参照してください。OBS ウィザードで選択したいずれかの値が Amazon IVS で許可されている値を超える場合は、Amazon IVS への接続に失敗しないように手動で値を調整する必要があります。ウィザードの完了後、次の操作を行います。
-
動画の解像度を調整するには、[Settings > Video > Output (Scaled) Resolution] (設定 > 動画 > 出力 (スケーリング) 解像度) を使用します。
-
動画のビットレートを調整するには、[Settings > Output > Streaming > Video Bitrate] (設定 > 出力 > ストリーミング > 動画ビットレート) を使用します。
注: 以前に [マルチトラックビデオを有効にする] をオンにしていた場合、これはライブストリームには影響しません。
-
-
ストリームの安定性を高め、ビューア再生時のバッファリングを回避するために、2 秒間のキーフレーム間隔をお勧めします。ウィザードが完了したら、[Settings > Output > Output Mode] (設定 > 出力 > 出力モード) に進み、[Advanced] (アドバンスト) を選択し、[Streaming] (ストリーミング) タブで [Keyframe Interval] (キーフレーム間隔) が 2 になっていることを確認します。
注: 以前に [マルチトラックビデオを有効にする] をオンにしていた場合、キーフレーム間隔は自動的に設定されます。
-
OBS Studio のメインウィンドウで、[Start Streaming (ストリーミングの開始)] を選択します。
OBS Studio によるストリーミングの詳細については、OBS Studio Quickstart
OBS の設定は後で手動で変更できます。
-
[Settings (設定) > Stream (ストリーム)] を選択します。
-
ドロップダウンから [Amazon IVS] を選択します。
-
ストリームキーを貼り付けます。
ウィザードはいつでも再実行できます。[Tools (ツール) > Auto-Configuration Wizard (自動構成ウィザード)] を選択してください。
オプションで、ライブストリームをSettings (設定) > General (全般)にローカルに保存することで、後で使用できます。前述のように、ブロードキャストと AWS 間または AWS 内のネットワークの問題により、ストリームの録画中にデータが失われる可能性があります。このような場合、Amazon IVS は録画よりもライブストリームを優先します。ストリーミングツールでローカルに録画することで、冗長性が得られます。
OBS Studio のアップデートを定期的にチェックして、最新バージョンに更新することをお勧めします。(例えば、「Failed to connect to server (サーバーへの接続に失敗しました) 」というエラーが表示された場合は、RTMPS をサポートしていない古いバージョンの OBS Studio を使用している可能性があります。)
SRT を使用した OBS Studio によるストリーミング
Secure Reliable Transport プロトコルをすぐに起動して実行するには、次の手順に従います。
-
ソフトウェアをダウンロードしてインストールします: https://obsproject.com/download
。 -
OBS Studio を初めてロードするときに表示される、OBS Studio の自動設定ウィザードを実行します。ステップに従い、デフォルト値を受け入れます。
-
[ストリーム情報] で、[サービス] ドロップダウンから [カスタム...] を選択し、[サーバー (取り込みサーバー)] と [ストリームキー] を入力します。
AWS CLI でチャネルを作成した場合:
-
OBS に入力するサーバーは、以下の 5 つの組み合わせになります。
-
取り込みプロトコル:
srt://
-
CLI レスポンスの
srt
構造体のエンドポイント:a1b2c3d4e5f6.srt.live-video.net
-
ポート:
9000
-
streamid (CLI レスポンスの streamKey 値):
sk_us-west-2_abcd1234efgh5678ijkl
-
コンテンツの暗号化に使用されるパスフレーズ。これは、安全でない取り込みが有効になっていない場合にのみ使用してください。
ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ
完全なエントリは次のとおりです。
srt://a1b2c3d4e5f6.srt.live-video.net:9000?streamid=sk_us-west-2_abcd1234efgh5678ijkl&passphrase=ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ
-
-
OBS に入力するストリームキーは、SRT プロトコルでは空のままになります。
-
-
動画出力の解像度とビットレートについては、「Amazon IVS ストリーミング設定」の「チャネルタイプ」を参照してください。OBS ウィザードで選択したいずれかの値が Amazon IVS で許可されている値を超える場合は、Amazon IVS への接続に失敗しないように手動で値を調整する必要があります。ウィザードの完了後、次の操作を行います。
-
動画の解像度を調整するには、[Settings > Video > Output (Scaled) Resolution] (設定 > 動画 > 出力 (スケーリング) 解像度) を使用します。
-
動画のビットレートを調整するには、[Settings > Output > Streaming > Video Bitrate] (設定 > 出力 > ストリーミング > 動画ビットレート) を使用します。
-
-
ストリームの安定性を高め、ビューア再生時のバッファリングを回避するために、2 秒間のキーフレーム間隔をお勧めします。ウィザードが完了したら、[Settings > Output > Output Mode] (設定 > 出力 > 出力モード) に進み、[Advanced] (アドバンスト) を選択し、[Streaming] (ストリーミング) タブで [Keyframe Interval] (キーフレーム間隔) が 2 になっていることを確認します。
-
OBS Studio のメインウィンドウで、[Start Streaming (ストリーミングの開始)] を選択します。
OBS の設定は後で手動で変更できます。
-
[Settings (設定) > Stream (ストリーム)] を選択します。
-
ドロップダウンから、[Custom (カスタム)] を選択します。
-
サーバーおよび/またはストリームキーに貼り付けます。
ウィザードはいつでも再実行できます。[Tools (ツール) > Auto-Configuration Wizard (自動構成ウィザード)] を選択してください。
オプションで、ライブストリームをSettings (設定) > General (全般)にローカルに保存することで、後で使用できます。前述のように、ブロードキャストと AWS 間または AWS 内のネットワークの問題により、ストリームの録画中にデータが失われる可能性があります。このような場合、Amazon IVS は録画よりもライブストリームを優先します。ストリーミングツールでローカルに録画することで、冗長性が得られます。
OBS Studio のアップデートを定期的にチェックして、最新バージョンに更新することをお勧めします。(例えば、「Failed to connect to server」というエラーが表示された場合は、RTMPS をサポートしていない古いバージョンの OBS Studio を使用している可能性があります)
RTMPS を使用した FFmpeg による録画動画のストリーミング
以下の手順に従ってください。
-
FFmpeg をダウンロードしてインストールします。https://www.ffmpeg.org/download.html
。 -
$VIDEO_FILEPATH
をストリーミングする MP4 動画の場所に設定します。VIDEO_FILEPATH=/home/test/my_video.mp4
-
STREAM_KEY
を StreamKey 値に設定します。STREAM_KEY=sk_us-west-2_abcd1234efgh5678ijkl
-
(ingestEndpoint に
INGEST_ENDPOINT
を設定します (AWS CLI から)。INGEST_ENDPOINT=a1b2c3d4e5f6.global-contribute.live-video.net
-
次のターミナルコマンドでストリーミングを開始します (これはすべて 1 行です)。
ffmpeg -re -stream_loop -1 -i $VIDEO_FILEPATH -r 30 -c:v libx264 -pix_fmt yuv420p -profile:v main -preset veryfast -x264opts "nal-hrd=cbr:no-scenecut" -minrate 3000 -maxrate 3000 -g 60 -c:a aac -b:a 160k -ac 2 -ar 44100 -f flv rtmps://$INGEST_ENDPOINT:443/app/$STREAM_KEY
上記のコマンドは一例です。プロダクションストリーミングの場合は、必要に応じてパラメータを調整します。
SRT を使用した FFmpeg による録画動画のストリーミング
-
FFmpeg をダウンロードしてインストールします。https://www.ffmpeg.org/download.html
。古いまたはコンパイル済みバージョンの FFmpeg を使用している場合は、 --enable-libsrt
フラグを指定した新しいバージョンを構築します。 -
SRT が FFmpeg で使用できることを確認します。次のコマンドを実行し、
libsrt
が出力に含まれていることを確認します。libsrt
がない場合は、SRT をサポートする新しいバージョンの FFmpeg を再構築または取得します。ffmpeg -version | grep enable-libsrt
-
$VIDEO_FILEPATH
をストリーミングする MP4 動画の場所に設定します。VIDEO_FILEPATH=/home/test/my_video.mp4
-
STREAM_KEY
を StreamKey 値に設定します。STREAM_KEY=sk_us-west-2_abcd1234efgh5678ijkl
-
INGEST_ENDPOINT
を (srt
オブジェクトの下にある AWS CLI の) エンドポイントに設定します。INGEST_ENDPOINT=a1b2c3d4e5f6.srt.live-video.net
-
PASSPHRASE
を (srt
オブジェクトの下にある AWS CLI の) パスフレーズに設定します。パスフレーズは、チャネルで安全でない取り込みが有効になっていない場合にのみ使用してください。PASSPHRASE=ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ
-
次のターミナルコマンドでストリーミングを開始します (これはすべて 1 行です)。
ffmpeg -re -i $VIDEO_FILEPATH -c copy -f mpegts "srt://$INGEST_ENDPOINT:9000?streamid=$STREAM_KEY&passphrase=$PASSPHRASE”