2011-10-12 63 views
1

我想通過這個命令流媒體視頻:如何通過乘VLC播放器播放一個流?

$ vlc [path to file] --sout udp:// [destination path] 

而且還對目的地,我運行它通過命令打一個分會場二VLC播放器:

$ vlc udp:// [source path] 

當我第一次運行它的球員播放視頻,但當我運行第二個球員第一個球員停止,只有第二個球員播放流。

我怎麼能玩2個玩家的一個流?

回答

0

我假設目標路徑是播放器的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可以直接作爲流媒體服務器,但我從來沒有嘗試過。

+0

- '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

0

對於您的情況,有一些實用程序將複製發送到特定端口的UDP數據包到同一機器上的其他幾個端口將是有益的。

這個應用程序的實施應該是微不足道的。