Video streaming 如何播放一个流乘VLC播放器?

Video streaming 如何播放一个流乘VLC播放器?,video-streaming,vlc,libvlc,Video Streaming,Vlc,Libvlc,我正在尝试通过以下命令流式传输视频: $ vlc [path to file] --sout udp:// [destination path] 在destination上,我运行了两个VLC播放器,它们通过命令播放一个流: $ vlc udp:// [source path] 当我运行第一个播放器时,它播放视频,但当我运行第二个播放器时,第一个播放器停止,只有第二个播放器播放流 如何由两个播放机播放一个流?我假设目标路径是播放机的IP和端口,这意味着您正在将流直接单播到该端点。当您在播放器

我正在尝试通过以下命令流式传输视频:

$ vlc [path to file] --sout udp:// [destination path]
在destination上,我运行了两个VLC播放器,它们通过命令播放一个流:

$ vlc udp:// [source path]
当我运行第一个播放器时,它播放视频,但当我运行第二个播放器时,第一个播放器停止,只有第二个播放器播放流


如何由两个播放机播放一个流?

我假设目标路径是播放机的IP和端口,这意味着您正在将流直接单播到该端点。当您在播放器上打开流时,它将绑定到该套接字并读取数据包。在那之后,数据包就“不见了”。通常情况下,播放机会保留地址,这样其他程序就无法在那里打开套接字,但这里似乎没有发生这种情况,因此第二个播放机劫持同一个套接字并获取UDP数据包

如果两个播放器位于同一主机上,则多播也将不起作用。如果需要支持固定数量的玩家,可以让VLC复制输出

--sout'#duplicate{dst=rtp{mux=ts,dst=192.168.1.10,port=50002}, dst=rtp{mux=ts,dst=192.168.1.40,端口=50004}'


如果您需要动态支持未知数量的客户端,则需要将流式服务器加入其中。哪一个取决于你想要实现什么。可能VLC也可以直接充当流媒体服务器,但我从未尝试过。

对于您的情况,最好有一些实用程序将发送到特定端口的UDP数据包复制到同一台机器上的其他几个端口

这个应用程序的实现应该很简单。

--sout'#duplicate{dst=rtp{mux=ts,dst=192.168.1.10,port=50002},dst=rtp{mux=ts,dst=192.168.1.40,port=50004}这个方法对我来说有一个问题:我有很多内存,我不能使用比我更多的内存,但数据包复制需要一些内存(因为使用VLM,它需要内存)。我可以从某个阵列的端口读取数据,并将其发送到几个vlc播放器,然后使用vlc的回调清除阵列内存吗?