はじめに。
VLCメディアプレイヤーには,マルチキャストソースとしてマルチキャストパケットを配信する機能と,マルチキャストレシーバとしてマルチキャストパケットを受信する機能があります。これらの機能を活用し,ネットワーク内でマルチキャストパケットの疎通をテストしてみます。
この記事で取り扱わない内容
- ルータ・スイッチなどのネットワーク機器の設定。
- マルチキャストの概要的な知識。
- マルチキャストルーティングプロトコル(PIM-SMとかPIM-DM)
- CODECの種類
準備する環境
- マルチキャストルーティング(PIM-SMとSSM)が有効になっているネットワーク(ルータ,スイッチ等)。
- VLCメディアプレイヤー(以下,VLC。今回はubuntu用3.0.18を利用)
- マルチキャストソース用PC(VLCが動くなら,WindowsでもUbuntuでも。)
- マルチキャストレシーバ用PC(VLCが動くなら,WindowsでもUbuntuでも。)
マルチキャスト配信する(マルチキャストソース用PCの操作)
-
配信用のMP4ファイルを拾ってきます。今回はここからダウンロードしました。
-
VLCを起動します。
-
VLCの設定で、送出パケットのTTLを変更し(32とか64ぐらいにしておけば十分)、VLCを再起動します。
-
ファイル選択画面から、MP4ファイルを指定
-
「トランスコーディング」では、「トランスコーディングを有効にする」のチェック有、プロファイルを「Video - H.264+MP3(TS)」を選択し「次へ」をクリック。
-「オプション設定」で「ストリーム」をクリックすると、マルチキャスト配信が始まります。
IGMPv3でマルチキャスト受信する(マルチキャストレシーバ側)
- ラストホップルータでSSM(Source Specific Multicast)が有効化されている必要があります。
- VLCを起動します。
- 「メディア」→「ネットワークストリームを開く」
- 「ネットワークURL」に、「rtp://ソースIPアドレス @ グループアドレス」を入力します。例えば、172.16.90.21のマルチキャストソースから232.1.1.1宛のマルチキャストパケットを受信する場合には、「rtp://172.16.90.21@232.1.1.1」です。
-「再生」をクリックすると、マルチキャスト配信された動画が再生されます。 - Wiresharkでキャプチャすると、レシーバからIGMPv3 Membership Reportが送信されたことが確認できます。
注意点
- VLCのマルチキャストパケットはTTLがデフォルトで1です。なので,そのままだとルータを越えてくれません。ルータ越えする場合には、設定でTTLを増やす必要があります。
- VLCではIGMPv2を明示的に使うことはできないようです。VLCの機能というより、OSがIGMPv3を使ってしまうようです。WindowsXP(多分それ以降も)では、IGMPv3が標準のようです。レジストリを書き換えればIGMPv2を使えるようですが、そこまでしてIGMPv2を使う必要もないでしょう…
参考資料
- 詳解マルチキャスト(ソフトバンククリエイティブ)