AWS Elemental MediaConnectでNDI入出力を試してみた
はじめに
清水です。高品質で信頼性と安全性に優れたライブ動画伝送サービスであるAWS Elemental MediaConnectでNDIを使った入出力を試してみました。
MediaConnectでは、2025年3月24日のアップデートでNDI出力(NDI Output)をサポートしました。以下がWhat's New at AWSのポストです。
また現段階でWhat's New at AWSへのポストはありませんが、NDI入力(NDI Source)に対応したことがAWS Elemental MediaConnect User Guideなどから確認できます。
/引用元: Document history for user guide - AWS Elemental MediaConnect/
外部サイトですがAWS API Changesでも、このアップデートについて確認できますね。2026/01/28付けのアップデートでした。
Changes This release adds support for NDI flow sources in AWS Elemental MediaConnect. You can now send content to your MediaConnect transport streams directly from your NDI environment using the new NDI source type. Also adds support for LARGE 4X flow size, which can be used when creating CDI JPEG-XS flows.
本エントリでは、MediaConnect flowでNDI入力(Source)ならびにNDI出力(Output)双方を試してみました。
AWS Elemental MediaConnectでNDIの入出力をやってみた
事前準備
まずは事前準備として、VPCならびにSecurity Groupの作成。そしてMediaConnectにアタッチするIAMロールを作成します。
VPCの作成
以下のVPCならびにSubnetを準備しました。
- VPC CIDR: 10.100.0.0/16
- Internet Gatewayをアタッチ
- Public Subnetを1つ準備
- Subnet CIDR: 10.100.101.0/24
- Ingernet Gatewayへの経路を設定
Security Groupの作成
上記VPCで利用できる、以下の条件のSecurity Groupを作成しました。
- Inboud ruleとして、自身のSecurity Groupからのすべての通信(All traffic)を許可
- Outbound ruleはデフォルト(すべての通信を許可)
これは、以下User Guideの前提条件(Prerequisites)、Security Groupに関する記載(自己参照型を利用)を元にしています。All trafficではなくポートなど制限はできるかと思いますが、今回は動作検証を目的としているので上記で進めました。必要に応じて、ポートなど適切に制限を行いましょう。

MediaConnect用IAMロールの作成
MediaConnectでVPC interface設定時に使用するIAMロールのロールをあらかじめ作成しておきます。今回はVPC MediaConnect利用時に作成したIAMロールを使用しました。作成方法については以下ブログエントリの「2. VPC MediaConnect用のIAM準備」を参照ください。
設定内容について抜粋すると、以下の権限を有するIAMポリシーをアタッチしています。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"ec2:describeNetworkInterfaces",
"ec2:describeSecurityGroups",
"ec2:describeSubnets",
"ec2:createNetworkInterface",
"ec2:createNetworkInterfacePermission",
"ec2:deleteNetworkInterface",
"ec2:deleteNetworkInterfacePermission"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
またIAMロールの信頼関係として以下を設定しています。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "mediaconnect.amazonaws.com"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "123456789012"
}
}
}
]
}
EC2 WindowsインスタンスでNDI Discovery Serverを構築
MediaConnectでNDIを利用する場合、VPC内に少なくとも1つのNDI Discovery Server(NDI検出サーバ)が必要です。以下User Guideの「How NDI sources work」に記載がありますね。
今回の検証では、EC2上のWindowsインスタンスを利用してNDI Discovery Serverとしました。
まずはEC2 Windowsインスタンスを起動します。日本語版Windows Server 2025のAMIを選択、先ほど準備したVPCならびにSubnetを指定します。インスタンスタイプはm8i.xlargeを利用しました。Security GroupとしてRDP用にポートを許可したもののほか、先ほど作成した自己参照型のSecurity Gropu(MediaConnectNDISecurityGroup)もアタッチしておきます。
EC2を起動してRDPで接続、以下NDIのサイトからNDI Toolsをダウンロードしてインストールします。
インストール後、エクスプローラでC:\Program Files\NDI\NDI 6 Tools\Discovery Serviceを開き、 NDI Discovery Service.exeを実行します。
ターミナルが開き、Listening状態であることが確認できます。
NDI Discovery Service v6.3.0.3
Copyright (C) 2023-2026 Vizrt NDI AB. All rights reserved.
0:00:00 : Running server on port: 5959
0:00:05 : Listening... [*-------------------------------]
0:00:10 : Listening... [ *------------------------------]
0:00:15 : Listening... [ *-----------------------------]
0:00:20 : Listening... [ *----------------------------]
0:00:25 : Listening... [ *---------------------------]
0:00:30 : Listening... [ *--------------------------]
0:00:35 : Listening... [ *-------------------------]
0:00:40 : Listening... [ *------------------------]
0:00:45 : Listening... [ *-----------------------]
0:00:50 : Listening... [ *----------------------]
0:00:55 : Listening... [ *---------------------]
0:01:00 : Listening... [ *--------------------]
0:01:05 : Listening... [ *-------------------]

またNDI Discoveryのアプリケーションも起動しておきました。(スタート > NDI 6 Tools > Discovery)

MediaConnectでNDI OutputなFlowを作成
続いて、MediaConnectでNDI Outputを持つFlowを作成します。MediaConnectのマネジメントコンソール、Flow一覧画面から(Create flow)ボタンで進みます。Nameを適切に設定、Availability ZoneはAny (defautl)のまま進めました。Flow sizeではデフォルトのMediumではなく、Large以上を選択することでNDIが利用可能となります。今回はLargeを選択しました。

Sourceについて、ここではStandard sourceを選択します。Flow source nameを適切に設定し、ProtocolはSRT listenerを選択しました。Allowlist CIDR blockを適切に設定、Inboud portは5079を指定しています。Decryptionは設定せずに進めました。

続いてVPC interfacesの設定です。(Add Vpc interface)ボタンを押下すると設定項目が現れます。先ほど準備したVPC、Subnet、IAMロールを設定します。

NDI configurationの項目では、Flow NDI supportをEnableにします。NDI machine nameを適切に設定、Discovery serversの項目ではserver addressとしてNDI Discovery Serverの稼働するEC2 WindowsのプライベートIPアドレスを指定します。VPC interface adaptaerはVPC interfacesで指定したものを選択します。

(Create flow)を押下してFlow作成後、Outputを作成します。Flow output typeとしてNDIを選択、NDI program nameを適切に設定しておきます。

Output作成後、MediaConnect FlowをStartさせます。Active状態になったあとでNDI Discovery Serverを確認すると、以下のようにAdded Source : EMX-NDIOUTPUTFLOW (EMX-NDIOutputFlow-Output)という出力が確認できます。
0:03:02 : Listening... [---* ]
0:03:07 : Listening... [----* ]
0:03:08 : Added Source : EMX-NDIOUTPUTFLOW (EMX-NDIOutputFlow-Output)
0:03:08 : Num sources (legacy) : 1
0:03:13 : Listening... [-----* ]
0:03:18 : Listening... [------* ]
NDI Discoveryのアプリケーション上でも、Sendersが登録されていることが確認できます。

MediaConnectでNDI SourceなFlowを作成
続いて、MediaConnectでNDI SourceなFlowを作成します。Flow sizeでLargeを選択、Sourceは`NDI sourceを選択します。NDI source nameはこの段階では空欄とし、のちほど設定します。

VPC interfaeceとNDI configurationについてはNDI OutputなFlowと同様の設定を行い、Flowを作成します。
Flow作成後、以下のようにSRT ListenerでOutputを作成しました。これはVLC Playerでの確認に使用します。

Flowリソース作成後、Startさせます。Active状態になると、NDI Discovery ServerにNum of source (legacy) listeners : 2という出力がありました。
0:09:09 : Listening... [------------* ]
0:09:14 : Listening... [-------------* ]
0:09:19 : Listening... [--------------* ]
0:09:20 : Num of source (legacy) listeners : 2
0:09:26 : Listening... [---------------* ]
0:09:31 : Listening... [----------------* ]
0:09:36 : Listening... [-----------------* ]
0:09:41 : Listening... [------------------* ]
このあと、Sourceで(Update)します。NDI source nameに自動で候補が現れるので、選択します。

選択すると、NDI Discovery Serverの出力が変化しました。(ただ、Receiversへの登録はありませんでした。)
0:10:11 : Listening... [------------------------* ]
0:10:16 : Listening... [-------------------------* ]
0:10:16 : Num of source (legacy) listeners : 1
0:10:16 : Num of source (legacy) listeners : 2
0:10:16 : Num of source (legacy) listeners : 3
0:10:21 : Listening... [--------------------------* ]
0:10:26 : Listening... [---------------------------* ]

MediaConnectのNDI SourceなFlowでPreviewが表示されれていることを確認します。

VLC PlayerでMediaConnect NDI SourceなFlowのOutputに接続、視聴を確認してみました。NDIでMediaConnectの2つのFlowを経由した映像が視聴できていますね。

まとめ
AWS Elemental MediaConnectでNDI Outputを持つFlowならびにNDI Sourceを持つFlowを作成、NDI Outputを持つFlowにOBS StudioからSRTで入力した映像が2つのFlowを経由することを、NDI Sourceを持つFlowのOutputから確認しました。
MediaConnectでNDIの利用にはNDI Discovery Serverが必要である点に注意しましょう。今回はこのNDI Discovery ServerをEC2 Windows上に準備して検証を行いました。動作検証のため冗長性などを考慮せず1台で確認を行いましたが、実際の運用では冗長構成が取れるかもポイントですね。実際にMediaConnectの設定としては3台のNDI Discovery Serverの指定が可能です。また、AWS Solution LibraryにはこのNDI Discovery Serverの本格導入に向けたアーキテクチャと、CloudFormatinテンプレートが準備されています。
MediaConnectでNDIを活用する場合、本番導入に向けては上記AWS Solution Libraryを上手に活用していきたいですね。機会があればこのAWS Solution Libraryについても検証してみたいと思います。







