OBSとAWS MediaConnectでお手軽映像伝送
何ができるか
SRTというプロトコルを利用して遠隔地に低遅延かつ安定した映像伝送を行える。パケロスにも強い。
AWS MediaConnectとは
映像をいい感じに伝送してくれるすごいやつ、ぐらいの認識でいいと思う
構成
送信PCからMediaConnect経由で受信PCに映像を伝送、受信した映像にリアルタイムで編集をかけて配信するような形を想定
準備
MediaConnect
まずAWSのアカウントを作る
コンソール画面からリージョンを東京に変更
画面上部の検索窓にMediaConnectと入力して表示されたページに飛ぶ
Create Flowを選択
各項目を入力してCreate Flow
Public Outbound IP address(例では12.34.56.78とした)を控えておき、
OutputsのタブからAdd outputを選択
各項目を入力してAdd output
OBS-送信PC
設定の配信タブを開き、
サービス:カスタム
サーバー:srt:/{控えたIPアドレス}:6000
ストリームキー:入力なし
とする
OBS-受信PC
ソース追加からメディアソースを選択し、
ローカルファイル:チェックを外す
ソースがアクティブに~:チェックを外す
入力:srt://{控えたIPアドレス}:8000
ハードウェアデコード使用:環境によってお好みで
とする
運用
・MediaConnect
一覧から起動したいFlowを選択してStart
・送信PC
OBSで配信開始するだけ
・受信PC
送信PCで配信を開始すると自動的に追加したソースに映像が表示される
うまくいかない場合はしばらく待つ(10数秒間隔で勝手に再接続処理が入る)
遅延
各自のネットワーク環境によるとしか言いようがないが、手元の環境だと最短1.4秒とか
費用
Flowの起動時間とMediaConnectから外部ネットワークへのデータ送信に対してそれぞれ課金される
東京リージョンで1つのFlowを6時間起動して10GBの送信を行った場合、約312円の請求になる
※ 1USD=110.33円換算 9月8日 15:40 UTC
他
・Flowは使い終わったらちゃんと止める
当然だが従量課金なので止め忘れると大変な事になる
普段クラウド系のサービスを運用していない人は特に注意
・FlowのSourceとOutputに接続できるコネクションは一つだけ
送信:受信で1:nにしたい場合はFlowのOutputを増やせばいいが、n:1やn:nの場合は送信元の数だけFlowを増やさないといけないのでやや費用が嵩む
・伝送される映像のコーデックやビットレートは送信側OBSの出力設定に依る
CBRである必要も無いのでVBRやCRF、NVEncが使えればCQPにしてあげると効率が良さそう
またMediaConnectは入力側の帯域上限を80Mbpsとしているようなので、マシンスペックとネットワークに自信があれば4k60fpsでの伝送も夢ではない
参考にさせて頂いた記事
ある程度技術が分かる人は多分こっち読んだ方が早い
この記事が気に入ったらサポートをしてみませんか?