用vlc搭建簡單流媒體伺服器(UDP和TCP方式)-轉 rtsp很慢才能顯示
這段時間用到了流媒體資料傳輸的TCP和UDP方式,感覺vlc可以做這方面的demo,這裡總結下,也方便我以後查閱。
簡介VLC不僅僅是個播放器,也可以作為流媒體伺服器使用。這個網上有相關的資料,我就不多說了。
宣告下本文用的VLC版本:2.0.3
用VLC搭建基於UDP的流媒體伺服器流媒體伺服器大多數是基於UDP的,這個在VLC中也有好幾種實現,我這裡只列出我用到的幾個。
1、UDP(legacy)傳統模式服務端操作
開啟“媒體——流”選項,如圖所示:
點選“新增”按鈕選擇流媒體檔案,然後點選“串流”按鈕
點選“下一個”後,在“目標設定”介面選擇“UDP (legacy)”
填上目標ip地址,並在“轉碼選項”中選擇相應的編碼型別(這個視情況而定)
可以點選“下一個”進行相關設定,也可以點選“串流”來完成服務端的設定。這裡我點選“串流”完成服務端的設定。
客戶端操作
點選“媒體——開啟網路串流”,在彈出的框中輸入“udp:”,點選“播放”按鈕即可。
通過介面操作比較簡單,但如果經常進行此類工作的話,指令碼是比較靠譜的。
命令列操作方式
服務端(172.16.1.1):
vlc -vvv sample1.avi --sout udp:172.16.1.100:1234--ttl 10客戶端(172.16.1.100):
vlc udp://雖然有基於TCP的RTP,但抓包發現,VLC的RTP是基於UDP的。
服務端操作
前幾步和“UDP(legacy)傳統模式”類似,這裡不再贅述。主要是在目標裡面選擇“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 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好,就這些了,希望對你有幫助。