有人对此有经验吗,或者有人知道它是否可以做到吗?我知道我可以将保存的视频文件流式传输到UDP IP地址,并且我知道可以获取视频流并将其保存到我的linux机器上,但是我如何同时执行两个操作呢?
我可以编写一个脚本来保存即将播放的广播中的视频,然后将其多播到我需要的任何UDP IP,但是我无法承受两次提要之间的任何延迟,最多只能延迟几秒钟。有什么方法可以同时执行吗?
答案 0 :(得分:0)
您可以编写一个带有循环的简单程序,该循环开始等待UDP数据包并将其内容发送到多播目标(或使用类似socat的工具)。
请注意,TTL在单播和多播数据包中的含义不同,因此必须根据多播阈值规则设置TTL:
您没有指定要使用的编程语言,但是请注意,大多数编程语言都提供了套接字接口,因此您可以使用它来对循环进行编程。
例如,对于Java,您将使用java.net.MulticastSocket实例而不是java.net.DatagramSocket实例,因为只有MulticastSocket允许您使用public void setTimeToLive(int ttl)
设置TTL。 DatagramSocket不存在这种方法。
无论如何,无需编程,您可以通过以下方式使用 socat 命令行工具:
我们假设您正在侦听端口1234,并希望将数据流发送到同一端口上的多播目标224.0.2.3:
% socat UDP4-RECV:1234 UDP-SENDTO:224.0.2.3:1234,ip-multicast-ttl=128