インフラ・DevOps
ホームネットワークでのマルチキャストTV配信
Multicast TV Distribution on My Home Network (apalrd.net)
要約
この記事では、ホームネットワーク上でテレビ放送をマルチキャスト配信する技術について解説しています。マルチキャストの仕組みを説明し、FFmpegなどのツールを使ってローカルネットワークやルーティングされたネットワークで動画を配信する方法を、具体的なコマンド例とともに紹介しています。特に、帯域幅の節約や効率的なコンテンツ配信の可能性に焦点を当てています。
全文翻訳
ホームネットワークでのマルチキャストTV配信2026-06-26 #networking #asn今日はマルチキャストの奇妙な世界を覗いてみます。ここではパケットが複数回配信され、逆ルーティングテーブルを使ってルーティングします。しかし、一度仕組みを理解すれば、コンテンツ配信の可能性が大きく広がります。@TallPaulTechの古いビデオに触発され、ライブTV配信をマルチキャストの仕組みの例として使用し、非常にニッチなユースケースでネットワークを大幅にアップグレードできる可能性を探ります。ビデオ以前の技術これらのビデオ/その他は私にとって非常に役立ちました。または、関連するものとして気に入るかもしれません。Tall Paul TechのIPTVセットアップ構築に関するプレイリストTall Paul Techのこのトピックに関する元のビデオリンクローカル例これらはすべてローカルネットワークで機能しますが、MLD / IGMPスヌーピングを行っていない場合、一般的に悪い体験(特にワイヤレスクライアントの場合)を引き起こす可能性があります。基本ファイル(トランスコーディングなし)クライアントがビデオ/オーディオをデコードできる場合、トランスコーディングなしでそのまま送信することで、多くのCPUパワーを節約できます。ここでは、メディアを取得し、オーディオおよびビデオトラックをコピーし、MPEG-TSトランスポートストリームに多重化して送信します。#-reはリアルタイムを意味します#-i bbb.movは入力ファイル(ビッグバックバニー)です#-c:vおよび-c:aはビデオとオーディオをコピーすることを意味します#-f mpegts "udp://[ff02::69@eth0]:5002?pkt_size=1200"は多重化およびUDP出力ですffmpeg -re -i bbb.mov -c:v copy -c:a copy -f mpegts "udp://[ff02::69@eth0]:5001?pkt_size=1200"基本ファイル(トランスコーディングあり)メディアが一般的にサポートされていない形式の場合(ただし、VLCで再生している場合は、発明されたあらゆる形式を再生できるはずです)、トランスコーディングが必要になる場合があります。この例では、非常に基本的なx264 + aacを使用し、再びMPEG-TSトランスポートストリームにパックします。#-reはリアルタイムを意味します#-i bbb.movは入力ファイル(ビッグバックバニー)です#-c:v libx264 -preset veryfast -profile:v high -level 4.1 -pix_fmt yuv420pはビデオトランスコードです#-c:a aac -b:a 128kはオーディオトランスコードです#-f mpegts "udp://[ff02::69@eth0]:5002?pkt_size=1200"は多重化およびUDP出力ですffmpeg -re -i bbb.mov -c:v libx264 -preset veryfast -profile:v high -level 4.1 -pix_fmt yuv420p -c:a aac -b:a 128k -f mpegts "udp://[ff02::69@eth0]:5002?pkt_size=1200"YLE TV私はフィンランドに住んでいるので、国営放送局YLEにアクセスできます。お住まいの国では、これが利用できない場合があります。しかし、これは私がどのように行っているかの例です。#run yle-dl、チャンネルtv1をロードし、ffmpegにパイプします#yle-dlは最終的にyleインフラにHLSプレイリストを問い合わせ、それをffmpegでマトロスカコンテナにダウンロードします#ffmpegリアルタイム、入力標準入力、ストリームとメタデータをマッピング、コピー(トランスコードなし)、MPEG-TS出力、UDPへyle-dl tv1 --pipe | ffmpeg -re -i - -map 0 -map_metadata 0 -c copy -f mpegts "udp://[ff02::69%eth0]:5003?pkt_size=1200"ルーティングされたマルチキャストサブネット/ VLANにまたがる必要がある大規模なネットワークでは、ルーティングされたマルチキャストを使用できます。ソース固有マルチキャストを使用しており、これはAny-Source Multicastよりも扱いやすく、ランデブーポイントを無視できます。FRR構成これはFRR(最適化されていないことは認めます)に使用している構成です。log syslog informationalinterface eth0description upstreamipv6 pimipv6 pim hello 10 40!interface eth1description downstreamipv6 pimipv6 mldipv6 mld version 2ipv6 mld query-interval 60ipv6 mld query-max-response-time 15ipv6 mld last-member-query-interval 10#If doing access list below #ipv6 mld access-list mld-groups!router pim6ssm prefix-list ssm6!ipv6 prefix-list ssm6 seq 5 permit ff3e::/16 ge 16!#Alternate filter on the MLD side#ipv6 access-list mld-groups seq 5 permit ipv6 any ff3e::1/128#ipv6 access-list mld-groups seq 10 permit ipv6 any ff3e::2/128#ipv6 access-list mld-groups seq 100 deny ipv6 any ff3e::/16#Filter both groups and sources#ipv6 access-list mld-groups seq 5 permit ipv6 2001:db8:1::10/128 ff3e::1/128#ipv6 access-list mld-groups seq 10 deny ipv6 any ff3e::/16基本ファイルルーティングありこの例では、ファイルをマルチキャスト経由でストリーミングしますが、ソース固有マルチキャストと正しいホップリミットを追加オプションで使用します。これらのオプションを使用して、前のリンクローカル例のいずれかをルーティングされたマルチキャストで動作するように変更できます。#-reはリアルタイムを意味します#-i bbb.movは入力ファイル(ビッグバックバニー)です#-c:vおよび-c:aはビデオとオーディオをコピーすることを意味します#-f mpegtsは、IPv4のTTLと同様にホップリミットも必要になりますffmpeg -re -i bbb.mov -c:v copy -c:a copy -f mpegts "udp://[ff35::69]:5004?hops=32&pkt_size=1200"他の投稿を読むコンテンツ配信ネットワークの開始 →