1. 程式人生 > >用vlc搭建簡單流媒體伺服器(UDP和TCP方式)

用vlc搭建簡單流媒體伺服器(UDP和TCP方式)

這段時間用到了流媒體資料傳輸的TCPUDP方式,感覺vlc可以做這方面的demo,這裡總結下,也方便我以後查閱。

簡介

VLC不僅僅是個播放器,也可以作為流媒體伺服器使用。這個網上有相關的資料,我就不多說了。

宣告下本文用的VLC版本:2.0.3

VLC搭建基於UDP的流媒體伺服器

流媒體伺服器大多數是基於UDP的,這個在VLC中也有好幾種實現,我這裡只列出我用到的幾個。

1UDPlegacy)傳統模式

服務端操作

開啟“媒體——流”選項,如圖所示:

點選“新增”按鈕選擇流媒體檔案,然後點選“串流”按鈕

點選“下一個”後,在“目標設定”介面選擇“UDP (legacy)”,然後點選新增按鈕

填上目標ip地址,並在“轉碼選項”中選擇相應的編碼型別(這個視情況而定)

可以點選“下一個”進行相關設定,也可以點選“串流”來完成服務端的設定。這裡我點選“串流”完成服務端的設定。

客戶端操作

點選“媒體——開啟網路串流”,在彈出的框中輸入“,點選“播放”按鈕即可。

通過介面操作比較簡單,但如果經常進行此類工作的話,指令碼是比較靠譜的。

命令列操作方式

服務端(172.16.1.1):

vlc -vvv sample1.avi --sout udp:172.16.1.100:1234 --ttl 10

客戶端(172.16.1.100):

vlc udp://@:1234

2RTP方式

雖然有基於

TCPRTP,但抓包發現,VLCRTP是基於UDP的。

服務端操作

前幾步和“UDPlegacy)傳統模式”類似,這裡不再贅述。主要是在目標裡面選擇“RTP / MPEG Transport Stream”這個選項,如圖所示:

IP,選埠:

點選“串流”按鈕即可完成服務端操作。

客戶端操作

點選“播放”按鈕即可。

命令列操作方式

服務端(172.16.1.1):

vlc -vvv sample1.avi --sout "#transcode{vcodec=h264,vb=0,scale=0,acodec=mpga,ab=128,channels=2,samplerate=44100}:rtp{dst=172.16.1.100,port=5004,mux=ts,ttl=10}
"

客戶端(172.16.1.100):

vlc rtp://@:5004

3RTSP方式

RTSP方式是通過RTP進行流媒體資料的傳輸的,VLC的實現也是基於UDP的。這種方式網上的參考資料比較多,我就不截圖了,直接敘述命令列方式的操作。

命令列操作方式

服務端(172.16.1.1):

vlc -vvv sample1.avi --sout "#transcode{vcodec=h264,vb=0,scale=0,acodec=mpga,ab=128,channels=2,samplerate=44100}:rtp{sdp=rtsp://:8554/test}" 

客戶端(172.16.1.100):

vlc rtsp://172.16.1.1:8554/test

VLC搭建基於TCP的流媒體伺服器

VLChttp方式搭建的流媒體伺服器是用TCP方式進行資料傳輸的,這裡就以這個為例子了。

HTTP方式

這個的介面操作和RTSP的類似,就不贅述。

命令列操作方式

服務端(172.16.1.1):

vlc -vvv sample1.avi --sout "#transcode{vcodec=h264,vb=0,scale=0,acodec=mpga,ab=128,channels=2,samplerate=44100}:http{mux=ffmpeg{mux=flv},dst=:8080/test}" 

客戶端(172.16.1.100):

vlc http://172.16.1.1:8080/test

 好,就這些了,希望對你有幫助。