本發(fā)明涉及計算機(jī)軟件和網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及集成YouTube應(yīng)用的低端機(jī)頂盒系統(tǒng)及播放YouTube網(wǎng)站視頻的方法。
背景技術(shù):
YouTube是世界范圍的視頻分享網(wǎng)站,為全球成千上萬的用戶提供高水平的視頻上傳、分發(fā)、展示、瀏覽服務(wù)。隨著YouTube的出現(xiàn),市場上出現(xiàn)各種視頻播放軟件,通過互聯(lián)網(wǎng)實現(xiàn)對YouTube視頻網(wǎng)站的文件下載。這些功能強(qiáng)大的播放軟件依賴于PC機(jī)環(huán)境,且操作復(fù)雜。對于普通用戶而言,如果能通過機(jī)頂盒就像看電視般簡單的搜索YouTube網(wǎng)站的視頻,會讓更多人分享到Y(jié)ouTube視頻。
在機(jī)頂盒上集成YouTube應(yīng)用,對機(jī)頂盒硬件的處理速度和存儲空間有一定的要求,并要求支持流媒體相關(guān)協(xié)議。常見的三種流媒體協(xié)議是:基于HTTP的漸進(jìn)下載、RTP/RTSP的實時流媒體協(xié)議,以及apple提出的HTTP Live Streaming協(xié)議。不同平臺的機(jī)頂盒對流媒體協(xié)議的支持種類不盡相同,通常大部分的機(jī)頂盒都支持HTTP的漸進(jìn)下載協(xié)議。
傳統(tǒng)技術(shù)中通常選取高端配置的機(jī)頂盒,并基于瀏覽器環(huán)境集成YouTube應(yīng)用。通過瀏覽器實現(xiàn)視頻搜索,視頻網(wǎng)址解析,視頻媒體封裝解析獲得音視頻幀后再傳入解碼器進(jìn)行解碼播放。該方法除去開發(fā)周期長外還要求機(jī)頂盒本身處理速度高,存儲設(shè)備空間大,因此并不適用于低端機(jī)頂盒。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是:提出一種集成YouTube應(yīng)用的低端機(jī)頂盒系統(tǒng)及播放YouTube網(wǎng)站視頻的方法,解決傳統(tǒng)技術(shù)中只能在高端機(jī)頂盒上集成YouTube應(yīng)用,對機(jī)頂盒處理速度和存儲空間要求較高,而不能適用于低端機(jī)頂盒的問題。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
集成YouTube應(yīng)用的低端機(jī)頂盒系統(tǒng),包括:
HTTP引擎模塊,用于組織請求內(nèi)容,并向YouTube網(wǎng)站發(fā)起媒體文件請求,在請求成功后接收到一個載有N個視頻ATOM供稿信息的綱要文件,并將該文件存儲在硬盤;
媒體信息處理模塊,解析所述綱要文件,并將視頻元信息分類存儲,待UI界面模塊調(diào)用顯示;
UI界面模塊,負(fù)責(zé)視頻元信息展示及視頻播放;
IPC控制模塊,將含有視頻元ID的網(wǎng)址發(fā)送至VLC服務(wù)器進(jìn)程進(jìn)行網(wǎng)址解析;并負(fù)責(zé)將網(wǎng)址解析模塊獲取的下載網(wǎng)址傳回至媒體信息處理模塊;
播放控制模塊,在媒體信息處理模塊獲取下載網(wǎng)址后對網(wǎng)址所對應(yīng)視頻進(jìn)行播放控制;
網(wǎng)址解析模塊,將帶有視頻元ID號的網(wǎng)址解析為視頻實時下載的網(wǎng)址。
作為進(jìn)一步優(yōu)化,所述視頻元信息包括:視頻元作者、發(fā)布時間、視頻元ID、縮略圖片下載網(wǎng)址以及下一頁搜索ID號信息。
此外,本發(fā)明的另一目的還在于提出一種播放YouTube網(wǎng)站視頻的方法,其包括:
a.HTTP引擎向YouTube服務(wù)器發(fā)送請求;在請求成功后接收到一個載有N個視頻ATOM供稿信息的綱要文件;
b.媒體信息處理模塊解析HTTP引擎接收的視頻元綱要文件;
c.UI界面顯示視頻元信息以及播放控制;
d.網(wǎng)址解析模塊將帶有視頻元ID號的網(wǎng)址解析為視頻實時下載的網(wǎng)址;
e.播放控制模塊經(jīng)媒體信息處理模塊獲取視頻實時下載網(wǎng)址后進(jìn)行視頻播放。
作為進(jìn)一步優(yōu)化,步驟a中,HTTP引擎根據(jù)GOOGLE API V3對搜索視頻資源所作的約束進(jìn)行默認(rèn)請求設(shè)置,請求YouTube網(wǎng)站上某國家搜索率前M個高清視頻,并每次返回N個視頻元的綱要文件,其中,國家和視頻發(fā)布時間可設(shè)置,所述M大于等于N。
作為進(jìn)一步優(yōu)化,步驟b中,媒體信息處理模塊獲取綱要文件后,逐一分析每一個視頻ATOM供稿,獲取視頻元作者、發(fā)布時間,視頻元ID,縮略圖片下載網(wǎng)址以及下一頁搜索ID號等信息,將下一頁搜索ID號寫入HTTP引擎請求中便可獲取下一個N視頻元的綱要文件,如此反復(fù)搜索下去可獲取M個視頻元信息,在獲得視頻元縮略圖下載網(wǎng)址后可通過WGET指令下載圖片,并存入縮略圖緩存,將視頻元作者,發(fā)布時間信息存入媒體信息進(jìn)行緩存。
作為進(jìn)一步優(yōu)化,步驟c中,UI界面模塊展示視頻縮略圖、視頻作者、發(fā)布時間信息,用戶通過操作播放控制按鈕,視頻搜索按鈕實現(xiàn)對YouTube網(wǎng)站媒體文件的下載和瀏覽。
作為進(jìn)一步優(yōu)化,步驟d中,當(dāng)網(wǎng)址解析模塊獲取實時下載網(wǎng)址后便將該實時下載網(wǎng)址經(jīng)IPC控制模塊傳回至媒體信息處理模塊。
作為進(jìn)一步優(yōu)化,步驟e中,播放控制模塊接收到視頻元實時下載網(wǎng)址后,利用底層支持的IP播放接口進(jìn)行播放,并且實現(xiàn)快進(jìn),快退特技播放。
本發(fā)明的有益效果是:在低端機(jī)頂盒中集成YouTube應(yīng)用以滿足低端市場取得YouTube網(wǎng)站視頻資源的需求,另外本發(fā)明采用客服端-服務(wù)器的方式,將網(wǎng)址解析模塊作為服務(wù)器進(jìn)程,實時網(wǎng)址需求作為客服端進(jìn)程處理。當(dāng)有網(wǎng)址解析需求時服務(wù)器請求才進(jìn)行網(wǎng)址解析工作,其他時候處于循環(huán)等待模式,這種處理方式方便在基于不同平臺的低成本機(jī)頂盒上集成YouTube應(yīng)用。
附圖說明
圖1為集成YouTube應(yīng)用的低端機(jī)頂盒系統(tǒng)構(gòu)架圖。
具體實施方式
本發(fā)明旨在提出一種集成YouTube應(yīng)用的低端機(jī)頂盒系統(tǒng)及播放YouTube網(wǎng)站視頻的方法,解決傳統(tǒng)技術(shù)中只能在高端機(jī)頂盒上集成YouTube應(yīng)用,對機(jī)頂盒處理速度和存儲空間要求較高,而不能適用于低端機(jī)頂盒的問題。
本發(fā)明是在低端機(jī)頂盒中引入高需求的YouTube應(yīng)用。低端機(jī)頂盒中已集成網(wǎng)絡(luò)接口,普遍支持基于HTTP的漸進(jìn)下載的流媒體協(xié)議;同時還有豐富的音視頻解碼接口。低端機(jī)頂盒不基于瀏覽器環(huán)境集成YouTube應(yīng)用,可以利用現(xiàn)有資源開發(fā)HTTP引擎模塊,媒體信息處理模塊,UI界面模塊,網(wǎng)址解析模塊結(jié)合播放控制處理模塊,實現(xiàn)對YouTube網(wǎng)站資源的瀏覽、搜索。YouTube網(wǎng)站的媒體下載網(wǎng)址是經(jīng)過編碼加擾的,需解擾解碼才能獲取媒體文件的實時下載網(wǎng)址。開源軟件VLC中集成有YouTube媒體文件網(wǎng)址解析的插件,可以利用VLC開源軟件實現(xiàn)網(wǎng)址解析模塊。
如圖1所示,本發(fā)明中的機(jī)頂盒系統(tǒng)主要由六部分組成:HTTP引擎模塊,媒體信息處理模塊,UI界面模塊,IPC控制模塊,播放控制模塊和網(wǎng)址解析模塊。以客服端-服務(wù)器的開發(fā)模式,VLC開源軟件作為網(wǎng)址解析的服務(wù)器進(jìn)程運行。當(dāng)UI界面模塊反饋有網(wǎng)址解析需求時,便將對應(yīng)的視頻元ID號經(jīng)過IPC控制端口傳送至VLC的服務(wù)器處理進(jìn)程進(jìn)行網(wǎng)址解析。VLC服務(wù)器進(jìn)程解析出實時下載網(wǎng)址后立即經(jīng)IPC控制端口傳回至播放控制接口進(jìn)行播放。
各個功能模塊的功能如下:
HTTP引擎模塊,用于組織請求內(nèi)容,并向YouTube網(wǎng)站發(fā)起媒體文件請求,在請求成功后接收到一個載有N個視頻ATOM供稿信息的綱要文件,并將該文件存儲在硬盤;
媒體信息處理模塊,解析所述綱要文件,并將視頻元信息分類存儲,待UI界面模塊調(diào)用顯示;
UI界面模塊,負(fù)責(zé)視頻元信息展示及視頻播放;
IPC控制模塊,將含有視頻元ID的網(wǎng)址發(fā)送至VLC服務(wù)器進(jìn)程進(jìn)行網(wǎng)址解析;并負(fù)責(zé)將網(wǎng)址解析模塊獲取的下載網(wǎng)址傳回至媒體信息處理模塊;
播放控制模塊,在媒體信息處理模塊獲取下載網(wǎng)址后對網(wǎng)址所對應(yīng)視頻進(jìn)行播放控制;
網(wǎng)址解析模塊,將帶有視頻元ID號的網(wǎng)址解析為視頻實時下載的網(wǎng)址。
基于上述機(jī)頂盒系統(tǒng),本發(fā)明實現(xiàn)的播放YouTube網(wǎng)站視頻的方法包括以下步驟:
a.HTTP引擎模塊發(fā)起對YouTube網(wǎng)站的媒體文件的請求,根據(jù)GOOGLE API V3對搜索視頻資源所作的約束進(jìn)行默認(rèn)請求設(shè)置。請求YouTube網(wǎng)站某國家搜索率前M位高清視頻,并每次返回載有N個視頻元信息的綱要文件。M值說明按照服務(wù)器提供的綱要文件內(nèi)容可以將這M個結(jié)果進(jìn)行遍歷,M值通??扇≈?000,M值大于N值??稍O(shè)置國家,發(fā)布時間,視頻關(guān)鍵詞等信息進(jìn)行搜索。也可通過UI界面中的Search按鈕調(diào)出屏幕軟鍵盤,設(shè)置關(guān)鍵詞搜索相關(guān)主題視頻。HTTP引擎請求成功后會接收到一個載有N個視頻ATOM供稿信息的綱要文件。并將該文件存儲在硬盤等待媒體信息處理模塊分析。
b.媒體信息處理模塊獲取綱要文件后,逐一分析每一個視頻ATOM供稿,獲取視頻元作者、發(fā)布時間,視頻元ID,縮略圖片下載網(wǎng)址以及下一頁搜索ID號等信息。將下一頁ID號寫入HTTP引擎請求中便可獲取下一個N視頻元的綱要文件。如此反復(fù)搜索下去可獲取M個視頻元信息。獲得視頻元縮略圖下載網(wǎng)址后可通過WGET指令下載圖片,并存入縮略圖緩存。將其他視頻元如作者,發(fā)布時間等存入媒體信息緩存。媒體信息接收IPC傳回的網(wǎng)址如果是帶有視頻元ID的網(wǎng)址與之前傳出的一致則顯示信息條提示網(wǎng)絡(luò)異常以便通知用戶知曉。
c.UI界面模塊負(fù)責(zé)視頻播放,視頻元信息展示。展示視頻縮略圖,視頻作者,發(fā)布時間等。設(shè)置視頻的播放模式,如全屏,小窗口;操作播放控制按鈕實現(xiàn)視頻的播放、暫停、靜音等操作。操作視頻控制按鈕Find便可調(diào)用HTTP引擎模塊進(jìn)行下一頁視頻搜索;操作Search按鈕可調(diào)出軟件盤,可輸入關(guān)鍵詞進(jìn)行主題列視頻搜索。用戶點擊視頻縮略圖便會將視頻元ID經(jīng)媒體信息處理模塊組合成API規(guī)定的網(wǎng)址格式傳送至IPC控制模塊。
d.IPC控制模塊將含有視頻元ID的網(wǎng)址發(fā)送至VLC服務(wù)器進(jìn)程,進(jìn)行網(wǎng)址解析;當(dāng)VLC網(wǎng)址解析模塊獲取實時下載網(wǎng)址后便將該實時下載網(wǎng)址經(jīng)IPC控制模塊傳回至媒體信息處理模塊。
e.VLC服務(wù)器進(jìn)程接收到含有視頻元ID的網(wǎng)址后,創(chuàng)建播放列表將該網(wǎng)址加載進(jìn)播放列表傳遞給網(wǎng)址解析模塊。按照VLC的默認(rèn)控制流程是要啟動相應(yīng)的播放列表控制線程,媒體信息預(yù)提取線程和解析線程。從用戶體驗感官出發(fā),用戶點擊視頻元縮略圖后不能常時間等待,因此要求在網(wǎng)速帶寬足夠的條件下從用戶點擊視頻到出視頻圖像必須在10秒以內(nèi)完成。為縮短時間即要求VLC服務(wù)器進(jìn)程完成網(wǎng)址解析后立即將實時下載網(wǎng)址傳回給播放控制模塊,并退出處理線程處于循環(huán)等待模式。因此VLC開源軟件的二次開發(fā)是關(guān)閉媒體信息預(yù)提取線程,簡化網(wǎng)址解析過程即得到網(wǎng)址后立即退出解析線程并回傳網(wǎng)址給播放器控制模塊,縮短解析時間。當(dāng)網(wǎng)絡(luò)出現(xiàn)異常時應(yīng)立即將返回帶有視頻元ID的網(wǎng)址給媒體信息處理模塊。VLC服務(wù)器進(jìn)程立即退出解析,返回循環(huán)等待模式。
f.播放控制模塊在獲取實時下載網(wǎng)址后,便可進(jìn)行視頻播放。
下面以一個具體的實施例闡述本發(fā)明中播放YouTube視頻的方法:
實施例:
1、機(jī)頂盒經(jīng)UI界面操作,通過HTTP引擎接口向YouTube服務(wù)器發(fā)送請求某類視頻資源的請求;并要求每次返回N個視頻元的綱要文件。N值可根據(jù)UI界面顯示設(shè)置確定。其請求格式如下:
https://www.googleapis.com/youtube/v3/search?videoDefinition=high&&order=viewCount&type=video&maxResults=N&part=snippet&key=GOOGLEKEY;
其中videoDefinition選取高清,標(biāo)清;type=video請求視頻;maxResults=N每次最多返回包含N個視頻元的綱要文件;key=GOOGLEKEY是在GOOGLE申請的會員密鑰。
2、HTTP引擎請求成功后會接收到Y(jié)ouTube數(shù)據(jù)API(應(yīng)用程序編程接口)返回的有N個視頻元ATOM供稿的綱要文件。
2.1機(jī)頂盒內(nèi)媒體信息處理單元,解析綱要文件,獲得N個視頻資源信息包括視頻資源ID,視頻作者,發(fā)布日期,更新時間以及視頻元縮略圖鏈接。
2.2機(jī)頂盒內(nèi)媒體信息處理單元將視頻元作者,發(fā)布日期,簡介等信息分N行在UI界面上顯示。
2.3機(jī)頂盒內(nèi)媒體信息處理單元利用WGET下載視頻元縮略圖并送UI界面顯示。WGET是Linux/Unix命令行文件下載器,是下載網(wǎng)站上文件的免費非交互下載工具,支持HTTP、HTTPS和FTP協(xié)議,也支持通過HTTP代理檢索。媒體信息處理單元需設(shè)置縮略圖地址(JPG_URL),存儲地址(SAVE_FILEPATH),下載參數(shù)等進(jìn)行縮略圖下載,待下載完畢后送入顯示。
2.4用戶可根據(jù)UI界面上的視頻元的縮略圖,簡介等信息選擇要觀看的視頻元。
3、機(jī)頂盒內(nèi)媒體信息處理單元在用戶選定某個視頻元后,將帶有該視頻元的ID信息,組合成YouTubeAPI規(guī)定的網(wǎng)址格式發(fā)送至網(wǎng)址解析模塊,進(jìn)行網(wǎng)址解析。
4、網(wǎng)址解析模塊利用視頻元ID號解析視頻元網(wǎng)址。網(wǎng)址解析模塊獲取視頻元ID,依據(jù)YouTube API規(guī)定,組合成下面的請求內(nèi)容:https://www.youtube.com/watch?v=VIDEO_ID。網(wǎng)址解析模塊通過上述請求內(nèi)容,向YouTube服務(wù)器發(fā)送播放VIDEO_ID的視頻的請求。YouTube服務(wù)器回復(fù)VIDEO_ID對應(yīng)的視頻元供稿。網(wǎng)址解析模塊解析供稿文件可以獲取視頻元IP地址,時長,視頻格式,分辨率,幀率等信息,并獲取YouTube服務(wù)器要求的HTML5播放器庫文件地址。運行庫文件中視頻簽名函數(shù)獲取相應(yīng)簽名內(nèi)容。將上述信息進(jìn)行組合,即獲取視頻元實時的下載地址,只有含有簽名內(nèi)容的地址才能播放。獲得視頻元下載網(wǎng)址后傳回給媒體信息處理模塊。
5、機(jī)頂盒內(nèi)播放控制模塊經(jīng)媒體信息處理模塊獲得視頻元實時下載網(wǎng)址后,通過基于HTTP漸進(jìn)下載流媒體協(xié)議進(jìn)行視頻播放。