AWS Elemental MediaLiveがSRT Listener Modeをサポートしていました!![Inputも] [Outputも]
はじめに
清水です。少し前のアップデートになりますが、ブロードキャストグレードのライブ動画処理サービスであるAWS Elemental MediaLiveでSRT Listener Modeのサポートが追加されていました。2026/02/28付けでWhat's New at AWSにポストされています。
MediaLive User GuideのDocument historyによると2026/02/15付けで更新があったようです。
またAWS CLI CHANGELOGや外部のAWS API Changesのサイトなどからも更新を確認できます。AWS CLIとしては1.44.32で更新があり、またAWS API Changesのページから2026/02/04の段階でAPIに更新が入っていたことが確認できます。
- api-change:
medialive: AWS Elemental MediaLive now supports SRT listener mode for inputs and outputs, in addition to the existing SRT caller mode.
What's New at AWSのポストタイトルだとSRT Listener Modeという記載でInputなのかOutputなのかどっちなんだ?と気になるところですが、User GuideやAPIの更新情報を確認するとInputとOutputの両方でSRT Listener Modeがサポートされたことがわかります。
これまでMediaLiveではSRT Caller ModeのInputならびにOutputがサポートされてきました。Streaming Softwareなどから映像をMediaLiveに打ち上げる際、MediaLive側が接続先となるIPアドレスをもつListener ModeのSRT Inputはサポートされていなかったため、AWS Elemental MediaConnectを経由した構成とする必要がありました。またMediaLiveのOutputはどこかの送信先を指定して出力するという形式が多いですよね。SRT Caller Outputもその挙動となります。対してSRT Listener Outputだと接続先を払い出すかたちになるので、MediaLiveのOutputとしてはSRT Caller Modeのみのサポートも妥当なのかなと考えていました。
そんな中でのInputとOutput双方でのSRT Caller Modeのサポートです!個人的にはとてもビックリ!しました。本ブログエントリではMediaLiveのSRT対応状況などを振り返りつつ、このMediaLive SRT Listener Modeを実際に試してみました。もちのろんでInputとOutput双方を検証しています!
MediaLiveのSRT対応状況を振り返る
まずはMediaLiveのSRT対応状況を振り返ってみます。2024年7月にMediaLiveがはじめてSRTプロトコルに対応しました。このSRT対応、具体的にはSRT Caller ModeがInputで使用できるというものでしたね。
待望のMediaLiveでのSRTプロトコルによる入力対応だったのですが、MediaLive Input側が接続先となるIPアドレスを持つというかたちではなく、接続先IPアドレスなどを指定してMediaLive Inputリソースを作成するというかたちのCaller Modeでの対応でした。例えばOBS Studioなどから映像を打ち上げる際はsrt://IP_ADDRESS:PORTというフォーマットで、打ち上げ先側でIPアドレスを持つ(Listener Modeである)必要があります。Caller Modeに対応しているStreaming SoftwareはListener Modeに対応したものよりも限定されているかと思います。MediaLiveがSRT Inputに対応した、といっても打ち上げる環境などにより利用できるケースは限定的だったのではないでしょうか。
なお、SRTプロトコルのCallerとListenerの違いをざっくりまとめると、映像の伝送される向きは考慮せず、IPアドレスなどを指定して接続先となるのがListenerです。WebサーバとWebブラウザ(クライアント)の関係だとWebサーバのイメージになるかと思います。クライアント側になるのがCallerですね。詳細は以下のエントリなどを参照いただければと思います。
さて、そんなMediaLiveのSRT Caller Inputの対応から少し経った2024年10月、今度はSRT Outputをサポートします。このSRT OutputもCaller Modeでした。出力先のIPアドレスなど宛先が存在し、そこへ向けてMediaLiveから出力する、というかたちですね。
ほかのMediaLiveのOutputの種類を考えてみます。HLSにしろアーカイブにしろ、基本的にMediaLiveのOutputはこの形式(SRTでいうCaller Mode)に該当するのではないかなと思います。RTMPも対応はPushだけですよね。そのため、もちろんMediaLiveでSRT OutputのListener Modeもサポートするような多機能化の期待はしつつも、Caller Modeのみのサポートも妥当だようなぁと当時のブログエントリ執筆時から考えていました。(実際に「まとめ」の章に記載があります。)
なお、このMediaLiveのSRT Listener Output対応という多機能化に期待した背景としては、AWS Elemental MediaConnectでSRT ListenerとCallerの双方をサポートしていることがありました。ということで、AWS Media ServicesでのSRT対応状況という意味も込めながら、MediaConnectのSRT対応状況も簡単に振り返っておきましょう。
MediaConnectでは、まずはじめにListener ModeでのSRTプロトコルをSourceとOutputの双方でサポートしました。2021年3月のアップデートでしたね。
このMediaConnectでのSRT Listener Modeの対応、特にSourceでSRTプロトコルが(Listenerとして)使えるようになったことから、Streaming SoftwareからAWS環境ににSRTプロトコルで打ち上げる、という構成がAWS Media Servicesで実現できるようになりました。MediaConnectからMediaLiveに連携させれば、さらにMediaPackage、CloudFrontと連携させて、SRTでAWSに打ち上げた映像ソースが大規模ライブストリーミング配信にも利用できるという構成になったわけですね。

そしてさらに2022年9月、MediaConnectでSRT Listener Modeに加えてCaller Modeのサポートが追加されます。こちらもSourceとOutput双方でのサポートでした。
これによりMediaConnectで、SRTプロトコルのlistener to caller/caller to listener/caller to caller/listener to listenerそれぞれがSourceならびにOutputで対応した、ということになりました。MediaConnectとしては2022年9月の段階で全対応していたかたちですね。
MediaLiveのSRT Listener Modeを試してみた
MediaLive(ならびにMediaConnect)のSRT対応状況について振り返りをしたところで、実際に今回のアップデート、MediaLiveのSRT Listener Modeを試してみます。今回は以下の構成としました。OBS StudioからSRT Listener Inputで映像をMediaLiveに打ち上げます。またMediaLiveでSRT Listener Outputを作成、VLC media palyerでこのMediaLiveのOutputに接続し、映像を視聴します。

Secretes ManagerにSRTのパスフレーズを登録
MediaLiveのSRT Listener Mode、InputでもOutputでも、パスフレーズの設定が必要なようです。Medialiveの設定に先んじて、パスフレーズを保存するAWS Secretes ManagerのSecretを作成しておきましょう。
MediaLiveで利用するパスフレーズの保存先となるAWS Secrets ManagerのSecrets作成方法ですが、AWS Elemental MediaConnectのUser Guideの以下の記載をMediaLiveに置き換えて読み解くとわかりやすかと思います。
MediaLiveがSRT Caller Outputをサポート際のブログエントリでも手順をまとめていますが、本ブログエントリでも改めて手順をまとめていきましょう。
なお、ユースケースなどにもよりますが、本来であればSRT Listener InputとSRT Listener Outputそれぞれで異なるパスフレーズを使用するべきかと考えます。しかし本ブログエントリでは簡略化のため、同じパスフレーズを使用することとしました。
まずはパスフレーズを作成します。今回は64文字のランダムな英小文字と数字の羅列をmacOS上のターミナルからopensslコマンド(openssl rand -hex 32)で作成しました。
b62a004cddc3108dbeeabec9e853c01102ad7f21156ce39127b8fb4c24476c96
この文字列をSecrets ManagerにSecretsとして保存します。マネジメントコンソールでSession Managerのページに進み、Secretes一覧画面を開きます。(Store a new secret)ボタンを押下してシークレット作成画面に進みます。Secret typeではOther type of secretを選択します。Key/value pairsの項目ではPlaintextを選択し、上記文字列を入力します。Encryption keyはデフォルトのaws/secretsmanagerとしました。(Next)ボタンを押下して進めます。

Secret nameを適切に入力します。今回はMediaLive/SRTEncryptionPassphrase/medialive-srt-listenerとしました。必要に応じてDescriptionも入力しましょう。(Next)ボタン押下して次ページに進みます。

Configure rotationの画面です。Secretのローテーションは使用しないので、Autmatic rotationは オフのまま (Next)ボタンで進みます。

最後にReviewページで内容を確認、(Store)ボタンを押下してパスフレーズを保存したSecretを作成します。


作成後、(View details)ボタンで作成したSecret詳細ページに進み、Secret nameとSecret ARNを控えておきます。のちほどMediaLiveのリソース作成の際に使用します。

なお、MediaLiveでこのAWS Secrets ManagerのSecretにアクセスする際には、MediaLive用IAMロールにSession Managerへのアクセス権限が必要です。最新のMediaLiveAccessRoleであればsecretsmanager:GetSecretValueの許可が含まれているかと思います。MediaLive用IAMロールをカスタマイズしているなどの場合はロールの権限内容を確認しておきましょう。
MediaLiveのInput security groupsの作成
続いて、MediaLiveのInput security groupを作成します。Input security groupは、例えばRTMP (push) typeなどのInputリソースに関連付け、そのInputに対する接続許可IPアドレス制限として機能しますね。MediaLiveリリースの2017年11月末から存在していた機能です。
RTMP (push)などMediaLiveのInputリソースがIPアドレスを持つようなInput typeではこのInput security groupを使用するかたちですよね。SRT Listener Inputでも例にもれず、Input security groupを利用して接続元IPアドレス制限を行います。
また、今回2026年2月のMediaLive SRT Listener対応のアップデートで興味深い点の1つとして、SRT Listener Outputの接続許可IPアドレス制限にも、このInput security groupを利用します 。 詳細は後述しますが、ここでは改めてInput security groupを作成する手順を振り返ってみましょう。
MediaLiveのマネージドサービス、左側メニューからInput security gropusを選択します。Input security groups一覧画面で右上(Create input security group))ボタンを押下して作成画面に進みます。Allowlist rulesにIPv4 CIDR形式で許可対象のIPアドレス(群)を入力します。入力すると、CIDR blocks to addの箇所に許可対象として追加されるIPアドレスが明記されますね。今回は特定のIPアドレス2つを/32で登録しました。入力後、必要に応じてTagsを設定、(Create)ボタンを押下してInput security groupを作成します。

Input security groupが作成できました。7桁の数値からなるIDをメモしておきましょう。

MediaLiveでSRT ListenerなInputの作成
SRTのパスフレーズをAWS Secrets ManagerのSecretに格納し、また接続元IPアドレスを制限するためのMediaLive Input security groupを作成しました。準備ができたところで、今回のアップデートの本題の1つ、MediaLiveのSRT ListenerなInputを作成していきます。
MediaLiveのマネジメントコンソール、Inputsの一覧画面から(Create input)ボタンを押下してCreate input画面に進みます。Input nameを適切に入力し、Input typeはSRT listenerを選択します。new の表示が嬉しいですよね!

続くInput network locationはAWS、Network modeはPublicで進めます。どちらもデフォルト値ですね。Input security groupではUser existingを選択して、先ほど作成したInput security groupをIDで確認しながら選択します。
Minimum latencyやStream ID、AlgorithmなどはSRT特有の設定項目ですね。Minimum latencyはデフォルトの2000ミリ秒としました。Stream IDは空欄のまま進めます。暗号化のAlgorithmはAES256を選択、Secret Arnの欄で先ほど作成したSRTパスフレーズを格納するSecretを選択します。

以上で(Create input)ボタンを押下、SRT ListenerなInputが作成できました。

作成後の画面を確認すると、Endpointsに接続先となるURLが2つ表示されていますね。ポートは5050なんだな、などと確認していると、ふと「2つ」ということに違和感を感じました。例えばRTMP (push)など、ほかのInput typeではInput classの指定箇所がありSTANDARD_INPUTかSINGLE_INPUTかを選択、前者であれば2つ、後者なら1つのEndpointsが払い出される認識です。(以下スクリーンショットはRTMP (push)のInput作成画面のもの。)

今回のSRT ListenerなInput作成画面では、このInput classの指定箇所はありませんでした。MediaLive User Guideの記載上はInput classを指定できるようではあるのですが。(「In the Input class section, choose the class for this input:」とあります。)
今回の検証では、後続のChannelでSingle pipelineを選択し、この2つのEndpointsを持つSRT ListenerなInputをアタッチしても問題なく動作したためこのInput classを指定しなかったリソースで確認を続けました。別途、例えばAWS CLIなど別のInput リソース作成方法ではSingle classなSRT Listener Inputが作成できるか確認してみたいと思います。
MediaLiveでSRT ListenerなOutputの作成
続いて、今回のアップデートの本題のもう1つ、SRT ListenerなOutputを作成していきましょう。MediaLiveのマネジメントコンソール、Channels一覧画面から(Create channel)ボタンで進みます。Channel nameを適切に設定し、Channel classはSingle piplineを選択しました。Channel IAM roleはデフォルトのMediaLiveAccessRoleを選択します。

画面を下にスクロールしましょう。Channel Security Groupという項目がありますね。「The channel security group employs input security group resources to define an allowlist of CIDRs for the pull outputs of the channel. Currently only necessary for SRT Listener outputs.」ということで、現段階ではSRT Listener Outputのみで必要な設定項目ということです。ここで、先ほど作成したInput security groupを選択しました。(なお、検証環境ということでSRT Listener InputとSRT Listener Outputで同じInput security groupを指定するかたちになりましたが、当然異なるInput security groupを指定することが可能です。)

左側Input attachmentsの箇所で(Add)ボタンを押下、このChannelにアタッチするInputとして先ほど作成したSRT ListenerなInputを指定します。

続いて、同じく左側Output groupsの(Add)ボタンを押下します。Choose output group typeでSRTを選択して、(Add output group)ボタンを押下しましょう。

SRT groupが追加されました。Nameを適切に設定したら、SRT outputsの項目を編集します。Settingsのリンク(色が変わっている文字列)をクリックして編集画面に進みます。

SRT destination settingsのDestination Aの設定箇所、まずはConnection modeをデフォルトのCallerからListenerに変更します。Listener portは5051としました。Stream IDは空欄のまま進めます。Encryption passphraseの箇所で先ほど作成したSRTパスフレーズを格納するSecretを選択します。そのほか、Output settingsのEncryption typeをデフォルトのAES-128からAES-256に変更しました。

最後にReview settingsの項目を確認、(Create channel)ボタンでChannelを作成します。SRT Listener OutputなChannelが作成できました。


MediaLiveに映像を打ち上げ視聴の確認
SRT ListenerなInputならびにOutputが作成できました。実際にMediaLiveに映像を打ち上げ、またMediaLive Outputからの映像を視聴して動作確認をしてみましょう。
先述のとおり、MediaLiveへの映像入力にはOBS Studioを使用します。またMediaLive Outputからの映像視聴にはVLC media playerを使用します。
まずはOBS Studioの配信先設定について確認しましょう。サービスはカスタム…を選択、宛先のサーバーには以下の形式でMediaLive InputのEndpointを指定します。
srt://[MediaLive InputのIPアドレス]:5050/?passphrase=[暗号化パスフレーズ]
IPアドレスについてはInputの詳細画面で確認しましょう。Endpointsの欄にURLとして記載されているのでそれをコピペして、パスフレーズ部分/?passphrase=[暗号化パスフレーズ]を加えるかたちもいいですね。なお、今回2つのEndpointsが表示されていますが、マネジメントコンソール上で上部に表示されていたものを使用しました。

OBS Studioの宛先、サーバーの箇所に以下を指定します。
srt://35.XXX.XXX.201:5050/?passphrase=b62a004cddc3108dbeeabec9e853c01102ad7f21156ce39127b8fb4c24476c96

続いて視聴確認用のVLC media playerです。メニューから「ネットワークを開く…」を選択、接続対象のURLを指定します。このURLもOBS Studioと同様、以下の形式ですね。ポート部分についてはOutput作成時に設定したListener portを指定します。
srt://[MediaLive OutputのIPアドレス]:[Listener port]/?passphrase=[暗号化パスフレーズ]
MediaLive OutputのIPアドレスについては、Channelの詳細画面、Destinationsの項目から確認しましょう。Egress endpointのSource IPがこのMediaLive OutputのIPアドレスに該当します。Listener portについてもこの画面で確認できますね。

VLC media playerでURLに以下を指定しました。
srt://13.XXX.XXX.197:5051/?passphrase=b62a004cddc3108dbeeabec9e853c01102ad7f21156ce39127b8fb4c24476c96

MediaLiveのChannelをStartさせます。ChannelがRunning状態になったら、OBS Studioで配信を開始します。MediaLiveのマネジメントコンソールでPreveiwを確認しつつ、VLC media playerでネットワークを開きます。OBS Studioからの映像がMediaLiveを経由してVLC media playerで視聴できましたね!

遅延などデフォルト設定値のまま(遅延を減少させることに着目していない状況)ですが、おおよそ7秒程度の遅延で配信されていることがわかります。どこまで遅延を小さくできるのかについても、機会があれば確認してみたいですね。
まとめ
AWS Elemental MediaLiveでSRT Listenerをサポートしたアップデートについてお届けしました。従来までのSRT CallerなInput、Outputに加え、今回のアップデートでSRT ListenerなInput、Outputが利用できるようになりました。
MediaLiveへの映像入力でSRTプロトコルをListener Modeで使用したい場合、これまではMediaLiveの前段にMediaConnectを挟む必要がありました。今回のアップデートでMediaLive単体で、SRT Callerとして動作するStreaming Softwareなどから映像を打ち上げることができるようになり、構成がシンプルになります。嬉しいアップデートですよね。
またSRT Listener ModeのOutputについては、リソース(MediaLive Channel)作成時にInput security groupを用いて接続許可対象のIPアドレスを指定するかたちです。MediaLiveのOutputリソースとして接続先が払い出されるかたちは珍しいなという印象ですが、上手に活用していきたいなと思いました。








