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

簡介

VLC主頁:http://www.videolan.org

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

聲明下本文用的VLC版本:2.0.3

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

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

1、UDP(legacy)傳統模式

服務端操作

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

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

點擊“添加”按鈕選擇流媒體文件,然後點擊“串流”按鈕

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

點擊“下一個”後,在“目標設置”界面選擇“UDP (legacy)”,然後點擊添加按鈕

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

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

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

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

客戶端操作

點擊“媒體——打開網絡串流”,在彈出的框中輸入“udp://@1234”,點擊“播放”按鈕即可。

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

通過界面操作比較簡單,但如果經常進行此類工作的話,腳本是比較靠譜的。

命令行操作方式

服務端(172.16.1.1):

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

客戶端(172.16.1.100):

vlc udp://@:1234

2、RTP方式

雖然有基於TCP的RTP,但抓包發現,VLC的RTP是基於UDP的。

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

服務端操作

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

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

填IP,選端口:

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

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

客戶端操作

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

點擊“播放”按鈕即可。

命令行操作方式

服務端(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

3、RTSP方式

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的流媒體服務器

VLC的http方式搭建的流媒體服務器是用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

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


分享到:


相關文章: