WSL2(EC2-1)への映像転送・表示確認メモ

背景と動機

本メモは、RTSP/UDP/SRT を用いた映像転送系を、Windows 10 + WSL2 環境上で段階的に構築・検証する過程で得られた知見を整理することを目的として作成したものである。
特に、WSL2 が NAT 構成で動作することにより、TCP(Web サーバ)は LAN から到達可能である一方、UDP(映像・SRT)は同様に扱えないという挙動差が、実験設計上のボトルネックとなっていた。

本検証では、この挙動を設定不備や一時的な問題として扱うのではなく、WSL2 の構造的制約として整理した上で、Windows ホストを明示的な中継点とする構成に切り替え、まずは EC2-1(WSL)で映像が確実に表示できることを最初の到達点とした。

本メモは、その切り分け過程と、最終的に映像表示が成立した最小構成を、今後の SRT 化、EC2-1 → EC2-2 転送、さらには実環境(AWS EC2 等)への展開に再利用できる形で記録するためのものである。

1. 環境概要

ネットワーク構成

  • 送信元(RTSP / mediamtx)

    • 192.168.0.23

  • Windows ホスト

    • 192.168.0.3

  • WSL2(EC2-1)

    • eth0: 172.29.8.198

  • OS / バージョン

    • Windows 10

    • WSL2(Ubuntu 24.04)

    • WSL バージョン: 2.6.3.0

前提条件

  • mediamtx.exe は 192.168.0.23 上で起動済み

  • RTSP は以下で配信中
    rtsp://127.0.0.1:8554/stream1

  • WSL2 は NAT 構成(172.29.0.0/20)


2. 課題と結論

課題

  • LAN 上の別ホスト(192.168.0.23)から
    WSL2(EC2-1)へ直接 UDP / SRT を送れない

  • 一方で TCP(Web サーバ)は LAN からアクセス可能

原因

  • WSL2 は Windows 内部 NAT 配下

  • TCP は Windows が「代理受信 → WSL 転送」できる

  • UDP は自動転送されない

  • そのため
    LAN → WSL の UDP listener は成立しない

結論

  • Windows ホスト(192.168.0.3)を明示的な中継点にする

  • 構成は以下に固定する

192.168.0.23
   ↓
192.168.0.3(Windows:中継)
   ↓
172.29.8.198(EC2-1 / WSL)

3. 今回確認したゴール

  • EC2-1(WSL)で映像が表示されること

  • まずは SRT を使わず、UDP(MPEG-TS)で確認

成功


4. 実行コマンド(成功構成)

4.1 EC2-1(WSL)側:UDP受信・映像表示

※ 先に起動して待ち受け

gst-launch-1.0 -v \
  udpsrc port=5000 caps="video/mpegts,systemstream=true,packetsize=188" ! \
  tsdemux ! decodebin ! videoconvert ! autovideosink sync=false

4.2 Windows ホスト(192.168.0.3):UDP 中継

※ socat は未導入のため GStreamer を中継器として使用

gst-launch-1.0 -v ^
  udpsrc port=5000 caps="video/mpegts,systemstream=true,packetsize=188" ! ^
  udpsink host=172.29.8.198 port=5000
役割:
  • LAN から UDP/5000 を受信

  • そのまま WSL(EC2-1)へ転送


4.3 送信側(192.168.0.23):RTSP → UDP 送信

gst-launch-1.0 -v ^
  rtspsrc location="rtsp://127.0.0.1:8554/stream1" latency=0 ! ^
  rtph264depay ! h264parse ! mpegtsmux ! ^
  udpsink host=192.168.0.3 port=5000

5. 結果

  • EC2-1(WSL)上で 映像表示を確認

  • 構成:

    • RTSP → UDP → Windows中継 → UDP → WSL

  • ネットワーク経路・GStreamer パイプラインともに正常


6. 補足事項

  • WSL 側で見えている 192.168.0.1 等の br-xxxx は Docker ブリッジであり、
    LAN 直結ではない

  • 実通信に使用されるのは eth0(172.29.8.198)のみ

  • 本構成は今後以下へそのまま拡張可能

    • UDP → SRT 化

    • EC2-1 → EC2-2 への socat / UDP 転送

    • 制御系(戻りUDP)の追加


7. 次のステップ(予定)

  1. UDP 構成を SRT に置き換え

  2. EC2-1 → EC2-2 の UDP / socat 転送確認

  3. ビットレート制御・制御パケット注入

未分類

Posted by ebata