■ 河北 溫帥
編者按:不具備組播技術(shù)的網(wǎng)絡(luò)如何實(shí)現(xiàn)視頻直播對于是不少管理人員的技術(shù)難題。本文筆者成功發(fā)現(xiàn)了一種設(shè)計(jì)簡單,可繞開網(wǎng)絡(luò)瓶頸的方法,該方法只用一個(gè)批處理文件、一款免費(fèi)軟件和一個(gè)html頁面和少量代碼就可實(shí)現(xiàn)。
如圖1所示,原直播方式為直播學(xué)校直接直播,多所學(xué)校收看,在上千路同時(shí)收看的情況下,直播學(xué)校到核心交換之間的百兆網(wǎng)絡(luò)難以承受,形成阻塞。
筆者的方案在流媒體服務(wù)器搭建轉(zhuǎn)發(fā),直播源只需提供一路直播流到流媒體服務(wù)器,流媒體服務(wù)器提供多路到收看學(xué)校,由于流媒體到核心交換為千兆網(wǎng)絡(luò),大大增加了網(wǎng)絡(luò)承受能力,讓直播更順暢。
1.具體實(shí)現(xiàn)方法為從網(wǎng)上下載免費(fèi)的vlc軟件并安裝,撰寫批處理文件(可參考以下代碼)
@echo off
echo 香港衛(wèi)視測試(1)二小(2) 二中附小(3) 六中(4) 實(shí)驗(yàn)中學(xué)(5) 退出(6)
圖1 直播網(wǎng)絡(luò)拓?fù)鋱D
choice/c:123456/m:"請輸入要直播的學(xué)校序號"
if %errorlevel%==1 goto play1 ‘跳轉(zhuǎn)到1輸入項(xiàng)函數(shù)
if %errorlevel%== 2 goto play2 ‘跳轉(zhuǎn)到2輸入項(xiàng)函數(shù)
if %errorlevel%== 3 goto play3 ‘跳轉(zhuǎn)到3輸入項(xiàng)函數(shù)
if %err orlevel%==4 goto play4‘跳轉(zhuǎn)到4輸入項(xiàng)函數(shù)
if %errorlevel%==5 goto play5‘跳轉(zhuǎn)到5輸入項(xiàng)函數(shù)
if %errorlevel%== 6 goto end‘跳轉(zhuǎn)到結(jié)束函數(shù)
‘1輸入項(xiàng)函數(shù)play1
:play1
cd/d"c:Program Files(x86)VideoLANVLC" ‘將活動(dòng)目錄切換到vlc所在目錄
echo正在播放香港衛(wèi)視測試 ‘輸出提示信息
vlc.exe-vvv rtmp://live.hkstv.hk.lxdns.com/live/hks--sout"#htt p{mux=ffmpeg{mux=flv},d st=:8081/}"
‘運(yùn)行vlc串流命令
goto end ‘串流停止后結(jié)束
‘2輸入項(xiàng)函數(shù)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輸入項(xiàng)函數(shù)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輸入項(xiàng)函數(shù)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輸入項(xiàng)函數(shù)play5
:play5
cd/d"c:Program Files(x86)VideoLANVLC"
echo正在播放實(shí)驗(yàn)中學(xué)
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
‘結(jié)束函數(shù)
:end
pause
運(yùn)行后效果如圖2所示。
輸入測試頻道序號“1”后回車,彈出vlc串流窗口。
2.轉(zhuǎn)發(fā)的直播流并不能直接在瀏覽器中播放,還需要在html頁面中加載播放器對直播流進(jìn)行解碼,在此選用一款免費(fèi)播放器CKPlayer,從官網(wǎng)下載Ckplayer播放器插件,和播放頁面play.html頁面放在同目錄下,在play.html文件中調(diào)用播放器,代碼如下:
<!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);
在服務(wù)器上搭建IIS并發(fā)布,在任意內(nèi)網(wǎng)PC上打開http://服務(wù)器IP地址/play.html? http://服務(wù)器IP地址:8081/,打開測試視頻播放。
該轉(zhuǎn)發(fā)方案使用常見的批處理和html配上核心vlc轉(zhuǎn)發(fā)技術(shù),便可實(shí)現(xiàn)一些專業(yè)直播平臺的效果,在轉(zhuǎn)發(fā)服務(wù)器配置和網(wǎng)絡(luò)無障礙的情況下,可實(shí)現(xiàn)千路以上同時(shí)觀看,服務(wù)器網(wǎng)絡(luò)有障礙的情況下,可搭建多個(gè)轉(zhuǎn)發(fā)服務(wù)器,規(guī)避瓶頸。