見出し画像

OBSとAWS MediaConnectでお手軽映像伝送

何ができるか

SRTというプロトコルを利用して遠隔地に低遅延かつ安定した映像伝送を行える。パケロスにも強い。


AWS MediaConnectとは

映像をいい感じに伝送してくれるすごいやつ、ぐらいの認識でいいと思う


構成

送信PCからMediaConnect経由で受信PCに映像を伝送、受信した映像にリアルタイムで編集をかけて配信するような形を想定

画像1


準備

MediaConnect

まずAWSのアカウントを作る

コンソール画面からリージョンを東京に変更

画像2

画面上部の検索窓にMediaConnectと入力して表示されたページに飛ぶ

画像3

Create Flowを選択

画像4

各項目を入力してCreate Flow

画像5

Public Outbound IP address(例では12.34.56.78とした)を控えておき、
OutputsのタブからAdd outputを選択

画像6

各項目を入力してAdd output

画像7


OBS-送信PC

設定の配信タブを開き、
サービス:カスタム
サーバー:srt:/{控えたIPアドレス}:6000
ストリームキー:入力なし
とする

画像8


OBS-受信PC

ソース追加からメディアソースを選択し、
ローカルファイル:チェックを外す
ソースがアクティブに~:チェックを外す
入力:srt://{控えたIPアドレス}:8000
ハードウェアデコード使用:環境によってお好みで
とする

画像9

運用

・MediaConnect
一覧から起動したいFlowを選択してStart

画像10

・送信PC
OBSで配信開始するだけ

・受信PC
送信PCで配信を開始すると自動的に追加したソースに映像が表示される
うまくいかない場合はしばらく待つ(10数秒間隔で勝手に再接続処理が入る)


遅延

各自のネットワーク環境によるとしか言いようがないが、手元の環境だと最短1.4秒とか

画像11


費用

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での伝送も夢ではない


参考にさせて頂いた記事

ある程度技術が分かる人は多分こっち読んだ方が早い


この記事が気に入ったらサポートをしてみませんか?