2

I have a closed third party system that sends a unicast UDP stream (MPEG-TS) that I'd like to access in two different programs on the same computer. I can not change anything on the source, not even IP or Port.

Is there any other option than to write my own little program that captures the stream and then creates to new streams and resends both?

It seems that only one of the two destination programs handles multicast, so I need two unicast streams.

4

1 に答える 1

4

socatを使用してユニキャストUDPをマルチキャストグループに転送したり、データをファイルに保存して後で処理したりできるはずです。

編集0:

これが例です(これはLinux上にあります-Windowsボックスはありません)。ユニキャストポートでリッスンし4242、マルチキャストに転送します(同じマシンですべてを実行している場合は、オプション224.10.10.10:5252を追加する必要がある場合があります)。ip-multicast-loop

~$ socat UDP-LISTEN:4242 UDP-DATAGRAM:224.10.10.10:5252

マルチキャストで受信し(インターフェイスアドレスまたは名前が必要)、ユニキャストに転送します192.168.0.1:6666

~$ socat UDP-RECVFROM:5252,ip-add-membership=224.10.10.10:eth0,reuseaddr,fork \
   UDP-DATAGRAM:192.168.0.1:6666

上記の2つを異なる宛先アドレスで実行します(reuseaddrオプションを使用すると、これらを同じマシンで実行できます)。

于 2012-09-24T12:34:21.437 に答える