如何通过乘VLC播放器播放一个流?
问题描述:
我想通过这个命令流媒体视频:如何通过乘VLC播放器播放一个流?
$ vlc [path to file] --sout udp:// [destination path]
而且还对目的地,我运行它通过命令打一个分会场二VLC播放器:
$ vlc udp:// [source path]
当我第一次运行它的球员播放视频,但当我运行第二个球员第一个球员停止,只有第二个球员播放流。
我怎么能玩2个玩家的一个流?
答
我假设目标路径是播放器的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,port = 50004}} '
如果您需要动态支持未知数量的客户端,则需要将流媒体服务器组合在一起。哪一个真的取决于你想要达到的目标。也许VLC可以直接作为流媒体服务器,但我从来没有尝试过。
答
对于您的情况,有一些实用程序将复制发送到特定端口的UDP数据包到同一机器上的其他几个端口将是有益的。
这个应用程序的实施应该是微不足道的。
- 'out'#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的回调清除数组内存? – BlueIceScream