■ 河北 溫帥
編者按:不具備組播技術的網絡如何實現視頻直播對于是不少管理人員的技術難題。本文筆者成功發現了一種設計簡單,可繞開網絡瓶頸的方法,該方法只用一個批處理文件、一款免費軟件和一個html頁面和少量代碼就可實現。
如圖1所示,原直播方式為直播學校直接直播,多所學校收看,在上千路同時收看的情況下,直播學校到核心交換之間的百兆網絡難以承受,形成阻塞。
筆者的方案在流媒體服務器搭建轉發,直播源只需提供一路直播流到流媒體服務器,流媒體服務器提供多路到收看學校,由于流媒體到核心交換為千兆網絡,大大增加了網絡承受能力,讓直播更順暢。
1.具體實現方法為從網上下載免費的vlc軟件并安裝,撰寫批處理文件(可參考以下代碼)
@echo off
echo 香港衛視測試(1)二小(2) 二中附小(3) 六中(4) 實驗中學(5) 退出(6)

圖1 直播網絡拓撲圖
choice/c:123456/m:"請輸入要直播的學校序號"
if %errorlevel%==1 goto play1 ‘跳轉到1輸入項函數
if %errorlevel%== 2 goto play2 ‘跳轉到2輸入項函數
if %errorlevel%== 3 goto play3 ‘跳轉到3輸入項函數
if %err orlevel%==4 goto play4‘跳轉到4輸入項函數
if %errorlevel%==5 goto play5‘跳轉到5輸入項函數
if %errorlevel%== 6 goto end‘跳轉到結束函數
‘1輸入項函數play1
:play1
cd/d"c:Program Files(x86)VideoLANVLC" ‘將活動目錄切換到vlc所在目錄
echo正在播放香港衛視測試 ‘輸出提示信息
vlc.exe-vvv rtmp://live.hkstv.hk.lxdns.com/live/hks--sout"#htt p{mux=ffmpeg{mux=flv},d st=:8081/}"
‘運行vlc串流命令
goto end ‘串流停止后結束
‘2輸入項函數play2
:play2
cd/d"c:Program Files(x86)VideoLANVLC"
echo 正在播放二小
vlc.exe-vvv rtmp://live.hkstv.hk.lxdns.com/live/hks--sout"#htt p{mux=ffmpeg{mux=flv},d st=:8082/}"
goto end
‘3輸入項函數play3
:play3
cd/d"c:Program Files(x86)VideoLANVLC"
echo正在播放二中附小
vlc.exe-vvvrtmp://10.36.0.61:1935/livepkgr/74d435edcdf2_10_34_208_201--sout"#http{mux=ffmpeg{mux=flv},dst=:8083/}"
goto end
‘4輸入項函數play4
:play4
cd/d"c:Program Files(x86)VideoLANVLC"
echo 正在播放六中
vlc.exe-vvv rtmp://live.hkstv.hk.lxdns.com/live/hks--sout "#http{mux=ffmpeg{mux=flv},d st=:8084/}"
goto end
‘5輸入項函數play5
:play5
cd/d"c:Program Files(x86)VideoLANVLC"
echo正在播放實驗中學
vlc.exe-vvvrtmp://10.
36.3 0.222:1935/livepkgr/74d435e6b765_10_35_80_61--sout "#http{mux=ffmpeg{mux=flv},dst=:8085/}"
goto end
‘結束函數
:end
pause
運行后效果如圖2所示。
輸入測試頻道序號“1”后回車,彈出vlc串流窗口。
2.轉發的直播流并不能直接在瀏覽器中播放,還需要在html頁面中加載播放器對直播流進行解碼,在此選用一款免費播放器CKPlayer,從官網下載Ckplayer播放器插件,和播放頁面play.html頁面放在同目錄下,在play.html文件中調用播放器,代碼如下:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html,body{height:100%}
style="height:100%">
var url=location.search.substr(1);
var videoObject= {
container:'#video',
variable:'player',
autoplay:true,
volume:2,
video:url
};
varplayer=newckplayer(videoObject);
在服務器上搭建IIS并發布,在任意內網PC上打開http://服務器IP地址/play.html? http://服務器IP地址:8081/,打開測試視頻播放。
該轉發方案使用常見的批處理和html配上核心vlc轉發技術,便可實現一些專業直播平臺的效果,在轉發服務器配置和網絡無障礙的情況下,可實現千路以上同時觀看,服務器網絡有障礙的情況下,可搭建多個轉發服務器,規避瓶頸。