我有一个封闭的第三方系统,它发送单播 UDP 流 (MPEG-TS),我想在同一台计算机上的两个不同程序中访问该流。我无法更改源上的任何内容,甚至无法更改 IP 或端口。
除了编写自己的小程序来捕获流然后创建新流并重新发送这两个流之外,还有其他选择吗?
似乎两个目标程序中只有一个处理多播,因此我需要两个单播流。
你应该能够使用socat http://www.dest-unreach.org/socat/将单播 UDP 转发到多播组,或者只是将数据保存到文件中并稍后处理。
Edit 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
使用不同的目标地址运行上面的两个(reuseaddr
选项允许它们在同一台机器上运行)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)