NAS でマルチキャストをユニキャストに:udpxy・msd_lite・rtp2httpd の選び方

NAS でマルチキャストをユニキャストに:udpxy・msd_lite・rtp2httpd の選び方

目標:LAN 内のあらゆる機器(パソコン、スマホ、テレビ)で、STB なしに IPTV を直接視聴できるようにする
効果:一度構築すれば家中のすべての機器で視聴可能。チャンネル切替速度や同時視聴数も自分で制御できます
難易度:中程度 —— まず ONU をブリッジモードにし、そのうえで NAS 上で Docker コンテナを 1 つ動かす必要があります
所要時間:約 30 分

1. なぜ「マルチキャスト→ユニキャスト」が必要なのか

マルチキャストとは

通信事業者の IPTV はマルチキャスト(Multicast)を使っています。1 つのデータストリームを送信元から一度だけ流し、
ネットワーク内でそのチャンネルを「購読している」すべての機器が同時に受け取ります。

利点は帯域の節約です。100 人が同じチャンネルを見ても、事業者が送るデータは 1 つだけです。

問題:一般の機器ではマルチキャストを再生できない

マルチキャストは IGMP プロトコルに依存しており、このプロトコルはLAN 内部でしか機能しません。
問題点は次のとおりです:

  • スマホ、タブレット、スマートテレビの多くは IGMP に対応していない
  • 対応していても、事業者のVLAN 付きマルチキャスト
  • サブネットをまたぐ場合(Wi-Fi 機器など)はなおさら再生できない

結果として、あなたのセットトップボックスでは見られても、スマホ・PC・Apple TV では見られません。

マルチキャスト→ユニキャストで解決できること

LAN 内で転送サービスを動かします。これが行うのは:

  1. IGMP でマルチキャストストリームを購読する
  2. マルチキャストストリームを通常の HTTP ユニキャストストリームに変換する
  3. プレイヤーで HTTP アドレスを開ける機器なら、どれでも視聴できる
事業者のマルチキャストストリーム  ->  [NAS 上の転送サービス]  ->  HTTP ユニキャスト  ->  任意の機器
rtp://239.x.x.x:4120              http://NAS_IP:5893/rtp/239.x.x.x:4120```

詳細な手順は [ を参照してください。](/optical-modem-bridge-mode-tutorial)。

---

## 2. 前提条件(この 2 つを必ず先に完了)

### 1. ONU をブリッジモードにする

**この手順は必須です。** ONU がルーターモードのままだと、IPTV の VLAN データが NAS に届きません。

詳細な手順は [ONU ブリッジモードの手順](/optical-modem-bridge-mode-tutorial) をご覧ください。ここでは要点だけ述べます:

- ONU のスーパーパスワードを入手する
- 元の設定をバックアップする
- インターネット用の VLAN をブリッジに変更し、自前のルーターで PPPoE 接続する
- **重要**:IPTV の VLAN は **そのまま維持** し、一緒にブリッジ化しないでください

### 2. ルーター/ソフトウェアルーターで IGMP プロキシを有効化

ルーターの IPTV 設定で **IGMP Proxy**(IGMP Snooping/マルチキャストプロキシと呼ばれることもあります)をオンにします。

システムごとの場所:

| システム | 場所 |
|---|---|
| OpenWrt | ネットワーク → インターフェース → IPTV インターフェース → IGMP Proxy にチェック |
| iKuai | 詳細アプリ → マルチキャスト設定 |
| ASUS | 内部ネットワーク → IPTV → IGMP Proxy を有効化 |
| Synology Router | 通常は追加設定不要 |

### 3. 事業者のマルチキャストアドレスを入手する

**マルチキャストアドレスは地域と事業者によって異なり、汎用的な値はありません。**取得方法:

1. **パケットキャプチャ**:STB が正常に再生している間に、ルーターでパケットキャプチャして IGMP Join パケットを探す
2. **ネットで検索**:「[あなたの都市] [事業者] iptv マルチキャストアドレス」で検索
3. **設置担当者に聞く**:直接教えてもらえることもあります

必要なのは次の 2 つです:

- **VLAN ID**(例:85、3961 など。事業者によって異なります)
- **マルチキャスト IP とポート**(例:`239.125.2.66:4120`)

> ついでに現在のネットワーク環境も確認しておきましょう:[NAT タイプ検出ツール](/nat-test.php)

---

## 3. 3 つの方式の選び方(核心)

結論から言うと:**この 3 つのツールは同じことをしており、違いはメンテナンス状況と性能です。**

### 方式 1:udpxy —— 最も古株で資料が最も多い

**これは中国語圏の IPTV で 10 年以上使われてきた方式です。**

| 項目 | 説明 |
|---|---|
| 長所 | Docker イメージが成熟(`ifmm/udpxy` は **19,691 回プル**)、チュートリアルが最多、落とし穴の情報も揃っている |
| 短所 | **公式は 4 年間メンテナンスされていない** |
| 向いている用途 | 初めての挑戦、単一機器での視聴 |

**知っておくべき事実**:udpxy の公式 README にもこう書かれています:

udpxy has not been extended or supported for 4+ years,
having been replaced by Gigapxy - a superior enterprise-oriented product.


**それは使えないという意味ではない** —— 10 年以上安定して動作してきただけで、更新が止まっているだけです。
ただし、より高い性能や新しい機能を求めるなら、次の 2 つを見てください。

### 方式 2:msd_lite —— udpxy の現代的代替

**名前は Multi Stream daemon に由来し、コミュニティで udpxy の代替として広く認められています。**

| 項目 | 説明 |
|---|---|
| 長所 | より軽量、リソース消費が少ない、性能が高い |
| 短所 | 中国語の資料は udpxy より少ない |
| 向いている用途 | OpenWrt ルーター、長期的に安定運用したい場合 |

**Enshan などのフォーラムで「udpxy 代替」を検索すると、真っ先に勧められるのがこれです。**

### 方式 3:rtp2httpd —— 機能が最も豊富

**このプロジェクトは「udpxy の現代版」を標榜しており、作者が V2EX で公開しました。**

| 項目 | 説明 |
|---|---|
| 長所 | 対応:**FCC 高速チャンネル切替プロトコル**に対応、RTP/RTSP など複数プロトコルをサポート |
| 短所 | 設定は udpxy よりやや複雑 |
| 向いている用途 | 複数機器の同時視聴、切替速度を重視する場合 |

### 比較まとめ

| 観点 | udpxy | msd_lite | rtp2httpd |
|---|---|---|---|
| メンテナンス状況 | 停止(4 年以上)| 活発 | 活発 |
| 導入難易度 | 最も低い | 中 | 中〜高 |
| リソース消費 | 中 | **低** | 中 |
| 切替速度 | 普通 | 良好 | **最高(FCC)** |
| 中国語資料 | **最多** | 中 | 少 |
| おすすめの用途 | 初めての挑戦 | 長期運用 | 体験重視 |

**:**:

- **初めて試す場合**:udpxy は情報が多く、問題が起きたときに調べやすい
- **安定運用後に最適化したい場合**:msd_lite に切り替える
- **複数機器+切替速度重視**:rtp2httpd を選ぶ

udpxy**udpxy** を使って実演します。最も導入しやすく、他の 2 つへ移行する際の考え方もまったく同じだからです。

---

## 4. 実践:NAS 上で Docker を使って udpxy をデプロイ

### なぜルーターではなく NAS なのか

ルーターでも動きますが、NAS にはいくつか利点があります:

- **CPU が通常より強力**、多重同時配信でもより安定
- **24 時間稼働**、ルーターの負荷を気にしなくてよい
- **Docker の管理が簡単**で、更新やロールバックが容易
- ついでに他のもの(メディアライブラリなど)も動かせる

### docker-compose.yml

NAS の Docker ディレクトリの下に `udpxy` フォルダを新規作成し、このファイルを置きます:

```yaml
version: "2"
services:
  udpxy:
    image: ifmm/udpxy
    container_name: udpxy
    network_mode: host
    restart: always

そして起動します:

docker-compose up -d

より複雑な compose 設定を生成したい場合は を参照してください。 をご利用ください。

必ず押さえるべき 3 点

1. network_mode: host は必須

これが最も踏みやすい落とし穴です。 udpxy はマルチキャストトラフィックを直接リッスンする必要があり、
Docker のデフォルトブリッジネットワークを使うと、** を参照してください。**。

そのため network_mode: host は省略できません。

2. ポート 5893

udpxy は 5893 ポートを固定で使い、同時に 2 つの機能を提供します:

パス 用途 http://NAS_IP:5893/status/ http://NAS_IP:5893/restart/ http://NAS_IP:5893/rtp/マルチキャストIP:ポート ユニキャスト変換後の再生アドレス

3. NAS のネットワーク設定

NAS と IPTV の VLAN が同じレイヤー 2 ネットワークにある必要があります。
よくある 2 つのやり方:

  • NAS のデュアル NIC:1 つのポートを通常のネットワークに、もう 1 つを IPTV VLAN に接続
  • スイッチのトランク:スイッチで IPTV VLAN を NAS に透過させる

バイパスルーター構成を使う場合は を参照してください。 を参照してください。

成功したか確認する

ステップ 1ステップ 1

http://NAS_IP:5893/status/

:ブラウザでステータスページを開く

**統計情報が見えればサービスは動いています。**ステップ 2

# マルチキャストアドレスが 239.125.2.66:4120 だと仮定
curl -I 'http://NAS_IP:5893/rtp/239.125.2.66:4120'

:1 つのチャンネルをテストするHTTP/1.0 200 OK が返れば転送は正常です。

5. プレイヤーでの利用

アドレス形式

この変換ルールだけ覚えれば十分です:

元のマルチキャストアドレス 変換後の再生アドレス rtp://239.125.2.66:4120 http://NAS_IP:5893/rtp/239.125.2.66:4120

パソコン側

プレイヤー 使い方 VLC メディア → ネットワークストリームを開く → アドレスを貼り付け PotPlayer Ctrl+U → アドレスを貼り付け MPV mpv http://NAS_IP:5893/rtp/...

テレビ/STB

  • Kodi:PVR IPTV Simple Client アドオンをインストールし、m3u プレイリストを読み込む
  • スマートテレビ:テレビ内蔵プレイヤーを使うか、VLC for Android TV をインストール
  • Apple TV:VLC または Infuse を使う

おすすめの方法:全チャンネルのアドレスを 1 つの .m3u ファイルにまとめれば、
プレイヤーに一度読み込ませるだけで全チャンネルを視聴でき、毎回アドレスを入力する必要がありません。

#EXTM3U
#EXTINF:-1, CCTV-1 総合
http://NAS_IP:5893/rtp/239.125.2.66:4120
#EXTINF:-1, CCTV-2 経済
http://NAS_IP:5893/rtp/239.125.2.67:4120

6. どの NAS なら動くか

良い知らせ:マルチキャスト→ユニキャストは I/O 集約型の処理で、CPU への要求は高くありません。

悪い知らせ:4K を複数同時に流す場合は、CPU とネットワークの両方に要求が出ます。

おおよその目安(実測ではないため、ご自身の環境で確認してください)

シナリオ おおよそのハードウェア要件 1080p 1 路 ほぼすべての NAS で可能(ARM の低価格モデル含む) 1080p 2〜3 路 Intel N100 クラスの x86 NAS なら余裕 4K 1 路 N100 以上 4K 複数同時 J4125 以上を推奨。さらに 2.5G ポートが必要

見落としがちな点:

  1. CPU よりネットワークポートが重要 —— ギガビットポートで 4K 3 路は厳しくなります
  2. NAS 上の他サービスがリソースを奪う —— Plex のトランスコードを同時に動かすなら余裕を残すこと
  3. ARM NAS でも動作する —— ifmm/udpxy イメージは arm64 と armv7 に対応

特定モデルのスコアを調べたい場合は NAS CPU 性能ランキング の CoreMark 実測データをご覧ください。

7. よくある質問

Q1:再生できず、ずっと読み込み中のままです

この順序で切り分けてください:

  1. まずステータスページを確認(/status/)が開けるか —— 開けなければコンテナが起動していません
  2. network_mode: host を確認 —— これが最も多い原因です
  3. マルチキャストアドレスが正しいか確認 —— 記憶に頼らずパケットキャプチャで照合してください
  4. ルーターで IGMP プロキシが有効か確認
  5. NAS が IPTV の VLAN にいるか確認

Q2:視聴できるがひどくカクつく場合の切り分けは?

まず「元ソースのカクつき」か「ネットワークのカクつき」かを切り分けます:

  • 別のチャンネルを試す —— 特定のチャンネルだけなら元ソースの問題
  • 有線接続で試す —— Wi-Fi でカクつき有線でカクつかないなら無線帯域の問題
  • ステータスページのトラフィック統計を見る —— 転送自体がパケットを落としていないか確認

Q3:チャンネル切替に 3〜5 秒かかるのは正常ですか?

正常です。 マルチキャスト→ユニキャストの切替遅延は主に次に由来します:

  • プレイヤーが HTTP リクエストを再発行する
  • サービスが再度 IGMP Join する
  • キーフレーム(I フレーム)を待つ

より速くしたい場合:FCC 高速チャンネル切替プロトコル に対応した rtp2httpd を使ってください。

Q4:一部のチャンネルしか視聴できないのはなぜ?

よくある原因:

  • チャンネルリストが不完全 —— キャプチャしたマルチキャストアドレスは、その時 STB が購読していたものだけです
  • 一部のチャンネルが暗号化されている —— STB の認証が必要で、転送できません
  • VLAN が違う —— 事業者によってはライブと見逃し配信が別の VLAN にあります

Q5:スマホを Wi-Fi につないで見られますか?

見られます。スマホと NAS が同じ LAN にあれば問題ありません。
ただし NAS が IPTV VLAN にあり、スマホが通常ネットワークにいる場合は、ルーターでVLAN 間ルーティング を参照してください。

Q6:帯域を大量に消費しますか?

重要な考え方:マルチキャストはLAN 内では、何人が見ても帯域を 1 本分しか使いません。
ただしユニキャストに変換すると、視聴者ごとに 1 本分を消費します を参照してください。

シナリオ LAN 帯域の消費 1080p 1 路 約 8〜15 Mbps 4K 1 路 約 25〜40 Mbps 1080p 3 路同時 約 24〜45 Mbps

ギガビット LAN なら十分ですが、Wi-Fi の場合は電波品質に注意が必要です。

Q7:事業者に LAN 内転送がバレますか?

技術的には:転送はあなたの LAN 内部で行われ、事業者側から見えるのは STB と同じ IGMP 購読です。
実際には:事業者によっては同時購読数を制限しており(例えば 2 路まで)、超えると拒否されます。

提案:過度な同時視聴は避けてください。体験を損なうだけでなく制限を誘発する可能性があります。

Q8 補足:マルチダイヤルは IPTV に影響しますか?

影響します。 シングルライン多段ダイヤルを併用している場合、それによって生じる複数の回線出口が IPTV の VLAN を妨害し、
STB が IGMP マルチキャストを受けられなくなることがあります。

提案:IPTV インターフェースを mwan3 の負荷分散から除外してください。具体的な方法は
OpenWrt シングルライン多段ダイヤルの手順:mwan3 による速度の集約 を参照してください。

Q8:Synology / QNAP / Zspace でも動きますか?

すべて動きます。Docker が動けば問題ありません。

ブランド 説明 Synology Container Manager で compose を直接インポート QNAP Container Station が compose に対応 Zspace Docker に対応するが、UI の制約が多い UGREEN / fnOS どちらも対応

唯一の違いはネットワーク設定の方法 —— シングル NIC とデュアル NIC では設定が異なります。

8. まとめ

3 つの方式を一言で

方式 一言 udpxy 老舗で安定、資料最多。初めてならこれを選ぶ msd_lite より軽く速い。安定したら乗り換える rtp2httpd 切替最速。複数機器で体験重視ならこれを選ぶ

最も踏みやすい 3 つの落とし穴

  1. network_mode: host を忘れる —— マルチキャストを受け取れず「ずっと読み込み中」になる
  2. ONU がルーターモードのまま —— VLAN が NAS に届かないので、先にブリッジ化する
  3. ルーターの IGMP プロキシを有効にしていない —— マルチキャストパケットが LAN に入ってこない

核心的な価値

この構成の本質は、事業者の IPTV を「1 台の STB」から解放し、
「LAN 内の 1 本の HTTP ストリーム」に変えることです —— これでどの機器でも視聴でき、
プレイヤーもチャンネルリストも自由に選べます。

導入コストはほぼゼロ(NAS はもともと動いているため)で、得られる体験の向上は非常に大きいものです。