vlc的應用之七:用vlc作單播,組播及點播服務器

請移步https://higoge.github.io/,全部下載資料在那個博客都能找到。謝謝。 html

--------------------------------------------------------------------linux

    仍是前兩天幫「豬×××」考慮畢業設計的時候,想了想vlc能不能做爲vod的服務器,替代上一篇博客裏面的live555 media server,由於live555 media server作的確實不是太好。查了些資料,在vlc羣裏面亂問了一通,終於解決了。好東西啊,你們共享。
    在這感謝vlc研究羣「櫻木」童鞋提供的幫助。

git

 

    1. 所需軟件
    vlc-0.9.9或vlc-0.8.6i,主要測試的是比較新的0.9.9版本的。
    putty:一款集telnet,ssh遠端登錄的很是好的軟件。下載地址:http://wrc.gro.clinux.org/putty/putty.exe
github

 

    2. 命令行啓動vlc,並打開後臺信息顯示,有助於觀察後臺信息
    開啓cmd,並cd到vlc的目錄,執行
服務器

vlc -vv --extraintf=loggerssh

 

    3. 開啓vlc的telnet服務
    vlc-0.9.9在界面上選擇工具->界面->telnet控制檯
    後臺dos窗口會有反應,顯示
編輯器

[00000403] main interface debug: looking for interface module: 1 candidate
[00000403] main interface debug: creating VLM
[00000405] main vlm daemon debug: thread 5112 (vlm thread) created at priority 0
(../../src/input/vlm.c:112)
[00000405] main vlm daemon debug: thread started
[00000403] telnet interface: using the VLM interface plugin...
[00000403] main interface debug: net: listening to 127.0.0.1 port 4212
[00000403] telnet interface: telnet interface started on interface 127.0.0.1 421
2
[00000403] main interface debug: using interface module "telnet"
[00000403] main interface debug: TIMER module_Need() : 19.000 ms - Total 19.000
ms / 1 intvls (Avg 19.000 ms)
[00000403] main interface debug: thread 5136 (interface) created at priority 0 (
../../src/interface/interface.c:168)
[00000403] main interface debug: thread startedide

    注意觀察main interface debug: net: listening to 127.0.0.1 port 4212這句話,說明vlc如今的telnet監聽的是127.0.0.1這個地址和4212這個端口。若是沒有顯示ip的話,通常用127.0.0.1是沒有問題的。127.0.0.1就表示的本機,與localhost是同一個意義。工具

 

    4. 啓動putty.exe
    主機名稱(或ip)輸入:127.0.0.1
    端口:4212
    鏈接類型:選Telnet
    點打開。
    若是沒有出現"Password:"字樣,點打開就關閉了,那就說明沒有telnet上。(這個時候能夠在cmd裏面輸入telnet 127.0.0.1 4212,看結果應該是正在鏈接到127.0.0.1...不能打開到主機的鏈接, 在端口 4212: 鏈接失敗,或者是與主機失去鏈接。不用cmd的telnet鏈接的主要緣由是過會輸入命令的時候看不到。)這個時候,請關閉防火牆,殺毒軟件及一切相關軟件,不過中毒了別找我哎。(*^__^*) 嘻嘻……繼續繼續。
    若是沒有出現以上問題,在Password:後面輸入"admin",沒有明文回顯。登陸成功後會顯示:Welcome, Master
oop

 

    5. 架設點播服務vod
    分別輸入:

new vod1 vod enabled
setup vod1 input d:/01.avi

    解釋下:
    new了一個名字叫vod1的vod,設置vod1的input爲d:/01.avi。

    驗證:開啓另外一個vlc,打開rtsp://127.0.0.1/vod1。應該就能夠播放了。127.0.0.1能夠換成本身的ip。

 

    6. 架設組播服務器
    繼續輸入:

new ch1 broadcast enabled
setup ch1 input d:/02.avi [loop]
setup ch1 output #duplicate{dst=rtp{dst=226.0.0.6,mux=ts,port=1234}}
control ch1 play

    解釋下:
    new了一個名字叫ch1的broadcast。設置ch1的input爲d:/02.avi,loop可選,表示循環播放。設置ch1的output爲#duplicate{dst=rtp{dst=226.0.0.6,mux=ts,port=1234}},表示rtp協議的ts流發送到組播地址爲226.0.0.6,端口1234。控制ch1播放。
    擴充:
    1) output後面能夠跟sout參數。具體能夠參考vlc->媒體->流->流輸出界面的已生成的流輸出字符串。
    2) control ch1後面還能夠加stop,pause,seek 百分比。表示中止,暫停和跳轉到百分之幾的位置。

    驗證:開啓一個vlc,打開rtp://226.0.0.6:1234。應該就能夠播放了。

 

    7. 架設單播服務器
    第6步裏面的output換成單播的地址就好了。其餘的都同樣的。注意不要new重名了。

 

    8. 保存剛纔操做
    繼續輸入

save d:/01.cfg

    將剛纔操做保存到了d:/01.cfg裏面,除了control。能夠經過記事本等文本編輯器查看一下里面的內容。
    若是從新開啓了vlc,則能夠輸入

load d:/01.cfg

    將剛纔保存的操做讀入進來,繼續操做或控制。

         

    經過這樣的配置,一個vlc的實例能夠提供多個服務,包括單播,組播和點播。確實強大啊。

    這樣上一篇博客的流媒體服務器能夠替換爲vlc了。跟上一篇日誌結合做個簡單的流媒體服務的網站或者相似於pplive的客戶端,就不是太有技術難度的事情了。

 

參考網址:http://www.videolan.org/doc/streaming-howto/en/ch05.html

相關文章
相關標籤/搜索