朱迅
淮安信息職業(yè)技術(shù)學(xué)院
基于樂(lè)視云計(jì)算的校園視頻直播和點(diǎn)播系統(tǒng)開(kāi)發(fā)
朱迅
淮安信息職業(yè)技術(shù)學(xué)院
大視頻時(shí)代,越來(lái)越多的校園活動(dòng)需要以視頻作為載體。文章基于樂(lè)視云計(jì)算平臺(tái),采用html5等技術(shù)開(kāi)發(fā)校園視頻直播和點(diǎn)播系統(tǒng)。播客可以使用手機(jī)進(jìn)行移動(dòng)直播或PC進(jìn)行云直播,直播完成后可錄制和編輯轉(zhuǎn)換為視頻點(diǎn)播;觀眾可以通過(guò)web網(wǎng)站或者手機(jī)應(yīng)用觀看直播和點(diǎn)播。系統(tǒng)功能完善,操作方便,界面美觀,適合校園師生使用。
云計(jì)算;移動(dòng)直播;html5
大視頻時(shí)代,越來(lái)越多的信息需要以視頻為載體,而各類校園活動(dòng)也迫切需要進(jìn)行直播和點(diǎn)播。同時(shí)移動(dòng)互聯(lián)技術(shù)的發(fā)展,使得手機(jī)可以作為直播錄制和觀看的終端。
基于樂(lè)視云計(jì)算的“Vaas”(Video as a Service,視頻即服務(wù))技術(shù),即可使用手機(jī)進(jìn)行移動(dòng)直播或者使用PC攝像頭進(jìn)行云直播,視頻直播完成后可進(jìn)行錄制和編輯轉(zhuǎn)換為視頻點(diǎn)播。所有視頻文件保存在樂(lè)視云服務(wù)器上,不需要購(gòu)買和部署視頻服務(wù)器。
樂(lè)視云(www.lecloud.com)能夠?yàn)橐曨l提供存儲(chǔ)和計(jì)算服務(wù)。播客根據(jù)樂(lè)視云提供的關(guān)鍵參數(shù)(包括推流域名、發(fā)布點(diǎn)、簽名秘鑰、直播流名稱等)進(jìn)行直播推流,如圖1所示;觀眾使用rtmp協(xié)議指向樂(lè)視云視頻URL進(jìn)行觀看,并在直播完成后將視頻文件保存在樂(lè)視云上便于點(diǎn)播。
為了能夠方便用戶查找和觀看視頻,需要開(kāi)發(fā)校園視頻網(wǎng)站web端和app端。web端和app端連接到同一數(shù)據(jù)庫(kù),用戶通過(guò)web端或app端可以看到當(dāng)前有哪些可以觀看的直播和點(diǎn)播視頻,點(diǎn)擊選中的視頻即打開(kāi)播放器,播放器根據(jù)視頻的相關(guān)參數(shù)播放樂(lè)視云上的視頻。
圖1 樂(lè)視云移動(dòng)直播推流參數(shù)
圖2 系統(tǒng)設(shè)計(jì)框架
為了方便編輯和更新視頻信息,還需要開(kāi)發(fā)管理端,通過(guò)管理端可以方便的對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,實(shí)現(xiàn)各類視頻參數(shù)的添加、編輯、刪除等。
綜上所示,系統(tǒng)設(shè)計(jì)框架如圖2所示。
2.1 播客端
播客可以通過(guò)手機(jī)app進(jìn)行移動(dòng)直播推流,即將拍攝的視頻圖像通過(guò)rtmp協(xié)議實(shí)時(shí)傳送給樂(lè)視云。用戶在App中填寫(xiě)從樂(lè)視云獲取的直播活動(dòng)參數(shù)(圖3),即可開(kāi)始直播推流(圖4)。
圖3 移動(dòng)直播推流參數(shù)
圖4 移動(dòng)直播推流
關(guān)鍵代碼如下:
String tm=format.format(new Date());//生成當(dāng)前時(shí)間
String streamName=etStreamId.getText().toString().trim();
String domainName=etDomainName.getText().toString().trim();
String appkey=etAppKey.getText().toString().trim();
//從用戶界面獲取流名稱,推流域名,簽名密鑰三個(gè)參數(shù)
String sign=MD5Utls.stringToMD5(streamName+tm+appkey);
//根據(jù)流名稱、時(shí)間、簽名密鑰用MD5算法加密,生成推流的簽名,防止盜鏈
String
rtmpURL="rtmp://"+domainName+"/live/"+streamName+"?tm= "+tm+"&sign="+sign;//生成rtmp推流地址
recorderSkinMobile.setPushSteamUrl(pushSteamUrl);//綁定樂(lè)視r(shí)ecorder
播客也可以使用PC攝像頭進(jìn)行云直播,安裝Flash Media Live Encoder等免費(fèi)推流軟件,導(dǎo)入從樂(lè)視云獲取的云直播配置XML文件,即可通過(guò)攝像頭進(jìn)行直播,如圖5所示:
圖5 云直播推流
直播推流完成后,可以在樂(lè)視云中將指定時(shí)間段內(nèi)的直播視頻轉(zhuǎn)換為點(diǎn)播視頻,如圖6所示:
圖6 直播完成后錄制為點(diǎn)播視頻
2.2 觀眾端
基于html5、javascript和php開(kāi)發(fā)web端校園視頻門(mén)戶,便于用戶觀看直播和點(diǎn)播。如圖7-圖9所示,其關(guān)鍵技術(shù)是將直播和點(diǎn)播的關(guān)鍵參數(shù)傳遞給樂(lè)視html5播放器,播放器使用相關(guān)流媒體協(xié)議進(jìn)行播放。
圖7 觀眾web端主頁(yè)
圖8 觀眾web端移動(dòng)直播列表
播放器部分關(guān)鍵代碼如下:
<script type="text/javascript"charset="utf-8"
src="http://yuntv.letv.com/player/vod/bcloud.js">//調(diào)用樂(lè)視播放器js庫(kù)
var player=new CloudVodPlayer();//創(chuàng)建樂(lè)視播放器
var playerConf={uu:"cfd9191aeb",vu:"79ff602f42",'width':' 100%','height':'100%'};//創(chuàng)建播放器配置,其中uu為樂(lè)視用戶ID,vu為樂(lè)視視頻ID
player.init(playerConf,"player");//播放器配置初始化
</script>
從以上代碼可以看出,樂(lè)視播放器基于html5開(kāi)發(fā),相比于大多數(shù)基于flash開(kāi)發(fā)的播放器,其優(yōu)點(diǎn)是web端和app端均可使用,而且用戶不需安裝瀏覽器插件。因此可以基于該段代碼開(kāi)發(fā)手機(jī)app,如圖10-11所示:
圖10 觀眾app端主界面
圖11 觀眾app端播放器
2.3 管理端
為了管理和維護(hù)方便,觀眾web端和app端連接到同一數(shù)據(jù)庫(kù),并基于DedeCMS開(kāi)發(fā)了web后端,便于修改各直播間和點(diǎn)播視頻的相關(guān)參數(shù)。如圖12-圖13所示:
圖12 管理端直播列表頁(yè)面
圖13 管理端直播參數(shù)頁(yè)面
基于樂(lè)視云計(jì)算平臺(tái)開(kāi)發(fā)的校園視頻直播和點(diǎn)播系統(tǒng),可以使用滿足大多數(shù)情況下的校園視頻應(yīng)用,例如文娛活動(dòng)、體育比賽、課堂教學(xué)、講座會(huì)議等,特別是其中的移動(dòng)直播功能適應(yīng)了移動(dòng)互聯(lián)的發(fā)展趨勢(shì),使校園中的每個(gè)人都可以使用移動(dòng)終端成為播客和觀眾。
[1]鄭靜靜等.基于Flex、Red5和MongoDB的視頻直播、錄制及存儲(chǔ)系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2014,34(2):589-592.
[2]彭宏等.基于流媒體的移動(dòng)視頻直播系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2014,(9):111-113.
[3]樂(lè)視云.樂(lè)視云計(jì)算API[EB/OL].http://www.lecloud.com/zhcn/help/api.html,2016.
[4]彭納新,支援.HTML5應(yīng)用開(kāi)發(fā)與實(shí)踐[M].北京:人民郵電出版社,2016.
朱迅(1980-),男,漢族,講師,碩士,淮安信息職業(yè)技術(shù)學(xué)院現(xiàn)代教育技術(shù)中心,研究方向:軟件開(kāi)發(fā)及應(yīng)用。