1. 目的
- 新しめの映像伝送プロトコルであるSRT(Secure Reliable Transport)の検証がしたかったため、簡単に試せそうなAWS Elemental MediaConnectを使って動作確認することにした。
2. やったこと
- MediaConnectに、SRT通信を中継するための設定を行う。
- スマホ(Larix Broadcaster)で時計を撮影し、映像をMediaConnectに対してSRTで送信する。
- MediaConnectからPC(VLC Media Player)へ映像をSRTで配信し、PCで映像が再生できることを確認する。
3. AWS Elemental MediaConnect とは(自分の理解)
- 映像を中継するためのマネージドサービス。
- 「flow」(映像伝送を行うパスのようなもの)を作成し、Source(映像入力)、Outputs(映像出力)を設定することにより、入力側と出力側を接続する。SourceやOutputsには外部デバイスや他のAWSサービスなど様々なものを設定可能。
4. 構成図
5. 確認手順
5.1 MediaConnectの設定
flow の作成
- 最初に、flow(映像伝送を行うパスのようなもの)を新規作成する。flowの作成時には、まずSource(映像入力)について設定する。今回の主な設定は内容は以下。
- Source type: Standard source を選択 (Sourceはスマホのエンコーダのため)
- Protocol/Inbound port: SRT listener (SRTを選択し、portを5000番に指定)
- Whitelist CIDR block: スマホ(wifi接続)のSRCIPを指定 (そのSRCIPからのみ映像アップロードを許可)
- Minimum latency: 100 (SRTのバッファサイズを最小値に設定)
- flow が作成される。この時点ではSourceのみが設定されており、outputsを別途追加する必要がある。
outputsの追加
- 作成したflowに対して、outputs(映像出力)の設定を追加する。前手順で作成したflowではoutputsがまだ空の状態のため、「Add output」で追加する。
- output側もSRTを選択し、portは5001とする。latency(buffer)やCIDR allow listも、Sourceの時同様に設定する。
flow を開始
- flowの画面で「Start」を押して、Sourceでの待ち受け、およびOutputsへの出力処理が可能な状態とする。
- flowのStatusが「STANDBY」⇒「ACTIVE」、Sourcesのsource healthが「The flow is inactive」⇒「Disconnected」に変化する。
- flowが「ACTIVE」の間、実際に映像伝送を行っていなくても課金が発生する。
5.2 送信側(スマホ)設定
- Androidスマホをwifiテザリングする。
- SRTでの映像送信を行うAndroidアプリ「Larix Broadcaster」をインストールする。
- Larix Broadcaster に接続先(MediaConnectのSource)の設定を行う。
- 接続先URL: srt://MediaConnectのIPアドレス:5000
- SRT sender mode: Caller (MediaConnectのSourceはListernerモードのため)
- 映像送信を開始し、接続に成功すると、MediaConnect側の Source - Source health が、「Disconnected」⇒ 「Connected」に変化する。
5.3 受信側(Windows PC)設定
- PC(Windows 11)をwifi接続する。
- SRTを受信、再生できるアプリとして、「VLC Media Player」 をインストールする。
- VLC Media Playerの設定画面にて、メディア - ネットワークストリームを開き、接続先URLに srt://MediaConnectのIPアドレス:5001 を指定する。
- 接続が成功し、映像再生が開始されると、MediaConnect側の Outputs - Status が「DISCONNECTED」-> 「CONNECTED」に変化する。
5.4 映像再生の確認
- 写真は以下のプロセスを撮影したもの。
- PCに表示されている時計をスマホで動画撮影
- スマホアプリ(Larix BroadCaster)でMediaConnectに送信
- PC(VLC Media Player)にてMediaConnectに接続し、映像を取得、再生
- 数字がブレていてみづらい部分あるが、元の映像(撮影対象)の時刻が「17:23:02:696」、伝送後の映像が「17:23:00:226」になっており、この環境では2秒程度の遅延で映像伝送できていることが確認できる。
- 時計のJavaScriptは「CSSとJavaScriptでおしゃれなデジタル時計を実装する方法」を利用させて頂いている。
6.所感
- 今回は最もベーシックな部分の動作確認を行った。SRTのチューニングをするとか、他のAWSサービスとつなげて録画もできるようにするとか、いろいろ応用的なところを確認してみたい。