《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 基于IPv6的嵌入式互聯(lián)網(wǎng)視頻應(yīng)用開發(fā)
基于IPv6的嵌入式互聯(lián)網(wǎng)視頻應(yīng)用開發(fā)
維庫
摘要: 本文設(shè)計并初步實現(xiàn)了IPv6環(huán)境下嵌入式互聯(lián)網(wǎng)視頻點播應(yīng)用架構(gòu),。在有限資源系統(tǒng)開發(fā)中,,使用軟件系統(tǒng)工程的思想,,用分層結(jié)構(gòu)假設(shè)開發(fā)架構(gòu),,在實驗環(huán)境中測試播放較為順暢。生產(chǎn)環(huán)境中,,采用具備更好DSP性能的輔助CPU,配合本文的ARM芯片實現(xiàn)本架構(gòu),可以更為丌頁暢地播放網(wǎng)絡(luò)視頻,,進一步提高系統(tǒng)的性能。
Abstract:
Key words :

     引言

  交互式網(wǎng)絡(luò)電視(IPTV)的興起,,可以為觀看者提供一種新的方式來選擇與控制他們的播放內(nèi)容,,國內(nèi)外運營服務(wù)商紛紛投資建設(shè)自己的IPTV運營平臺。隨著Web2 o的興起,,新型的視頻內(nèi)容服務(wù)商打破了IPTV內(nèi)容提供者與內(nèi)容使用者之間的界限,,使得視頻內(nèi)容得以爆發(fā)式地增長。諸如YouTube,、優(yōu)酷以及類似的網(wǎng)站,,越來越多地沖擊著傳統(tǒng)電視媒體。這些視頻網(wǎng)站的高度流行,,使更多的人開始關(guān)注互聯(lián)網(wǎng)視頻,,視頻內(nèi)容也得到了極大的豐富。

  觀看者不僅希望能夠接收優(yōu)質(zhì)的IPTV的內(nèi)容,更希望能夠如同普通電視一股方便地觀看,。IPv6網(wǎng)絡(luò)的發(fā)展使得帶寬越來越充足,,嵌入式技術(shù)的發(fā)展則為方便地觀看這些內(nèi)容提供了基礎(chǔ)。本文就是基于這樣的現(xiàn)實,,設(shè)計了一種通過家用機頂盒播放互聯(lián)網(wǎng)視頻的應(yīng)用架構(gòu),,解決播放這些互聯(lián)網(wǎng)視頻必須通過電腦的問題,使得觀看這些視頻內(nèi)容變得簡單易用,。

  技術(shù)原理

  典型的互聯(lián)網(wǎng)視頻網(wǎng)站包括幾個基本的組成部分:視頻介紹,、視頻分類、視頻本身——通常是flv文件格式及相關(guān)視頻,。我們在通過瀏覽器或者專用軟件播放選定的視頻之前,,首先要通過關(guān)鍵字搜索或者分類搜索的方式找到對應(yīng)視頻,然后才能播放,。大多數(shù)的視頻網(wǎng)站都采用流媒體播放方式,,可以讓我們邊下載邊播放,少數(shù)需要下載后才能播放,。我們設(shè)計的嵌入式應(yīng)用架構(gòu)包括如下幾個功能組成部分:

  ·通過網(wǎng)絡(luò)檢索并下載視頻內(nèi)容,;

  ·設(shè)定過濾器分類檢索視頻內(nèi)容;

  ·可以對下載后的視頻海報進行

  幻燈式播放:

  ·對伽視頻文件的編解碼,、音視頻編碼及音畫同步:

  ·友好化用戶播放界面,。

  這套架構(gòu)的基本應(yīng)用結(jié)構(gòu)如圖1所示。

視頻服務(wù)的嵌入式應(yīng)用架構(gòu)
 


圖1視頻服務(wù)的嵌入式應(yīng)用架構(gòu)

  應(yīng)用架構(gòu)的組成與實現(xiàn)

  硬件系統(tǒng)的組成

  流媒體編解碼單元是整個系統(tǒng)的核心部分,,主要由嵌入式系統(tǒng),、嵌入式CPU及外圍部件組成。嵌入式CPU采用三星公司的S3C2440,,400MHz主頻,,內(nèi)部集成了ARM920T微處理器和常用夕卜圍組件、64M SDRAM及256MFLASH,。通過S3C2440的GPIO與以太網(wǎng)控制器芯片DM9000的連接,,擴展了網(wǎng)絡(luò)接口,并接人互聯(lián)網(wǎng),,單元結(jié)構(gòu)參見圖2,。

流媒體編碼單元結(jié)構(gòu)
 


圖2流媒體編碼單元結(jié)構(gòu)

  嵌入式操作系統(tǒng)采用的是Linux,有如下特點:開放的源代碼,,內(nèi)核小,,執(zhí)行效率高,對IPv6的良好支持,; Linux的高度模塊化使組件更容易加載和卸載,; 內(nèi)置網(wǎng)絡(luò)支持,,容易實現(xiàn)內(nèi)置的Web服務(wù)器等;支持多種硬件平臺,;提供完整的開發(fā)工具和SDK(Software Development Kit),,提供圖形化的定制和配置工具。

  軟件設(shè)計與實現(xiàn)

  嵌入式網(wǎng)絡(luò)視頻點播處理時,,需要進行實時的圖像處理,、音視頻解碼與同步、網(wǎng)絡(luò)傳輸,、圖形用戶界面四部分協(xié)同處理,。為了確倮軟件開發(fā)、集成乃至最后測試時不至于過分復(fù)雜,,我們對這四部分進行分層處理,。從功能的角度來看,整個軟件架構(gòu)包括四個部分:

  ·網(wǎng)絡(luò)功能庫,;

  ·流媒體處理庫,;

  ·音視頻解碼庫;

  ·用戶界面庫,。

  架構(gòu)接口參見圖3,。

視頻播放應(yīng)用架構(gòu)
 


圖3視頻播放應(yīng)用架構(gòu)

  網(wǎng)絡(luò)功能庫

  網(wǎng)絡(luò)功能庫在標(biāo)準IPv6協(xié)議的基礎(chǔ)上設(shè)計了用于通過互聯(lián)網(wǎng)處理查詢/檢索音視頻內(nèi)容,同時負責(zé)實時流媒體內(nèi)容下載的應(yīng)用協(xié)議,。圖4描述了網(wǎng)絡(luò)功能庫的處理過程:

網(wǎng)絡(luò)功能庫流程圖
 


圖4網(wǎng)絡(luò)功能庫流程圖

 ?、偻ㄟ^NETLIB_handlerlnit()創(chuàng)建NETLIB_Handler實例,完成初始化工作,;②通過NETLIB_search()或NETLIB searchBylndex()進行查詢,;③檢索的結(jié)果由Handler處理,亦可重新搜索,;④NETLIB readContent ( )或NETLIB ̄getCount()可以從handler倮存的檢索信息中讀取指定內(nèi)容,;⑤檢索完畢可通過NETLIB_handl erDestroy銷除緩存中的結(jié)果集。

  下面介紹網(wǎng)絡(luò)功能庫主要功能函數(shù)說明,,包括下面幾個API。

  int NETLIB_search(NETLIB_Handler handler,, char* keyword,NETLIB_QueryType queryType,unsigned int maxCount),。描述:搜索給定關(guān)鍵字的視頻,并返回不超過maxCount指定數(shù)量的結(jié)果,。

  int NET LIB_readContent(NETLIB_Handler handler,,int index,NETLIB VideoDetail*videoDetail),。摘述:從檢索結(jié)果中根據(jù)指定的順序(index)讀取相應(yīng)的內(nèi)容,。

  流媒體處理庫

  流媒體處理庫負責(zé)處理流媒體數(shù)據(jù),,它的功能包括:①從實時媒體流中分解音視頻;②選定音視頻解碼庫對分解的音視頻進行解碼,;③對解碼后的音視頻進行同步渲染,,確保播放效果。處理流程參見圖5,。

 

流媒體處理庫流程圖

圖5流媒體處理庫流程圖

  音視頻解碼庫

  一個功能完善的FLv播放器必然包括以下三大核心功能模塊,。

  (1)標(biāo)簽解析模

  塊:能夠按照Adobe公司制定的文檔格式規(guī)范對Fly文檔凵(結(jié)構(gòu)類似swf文件)進行解析,。

 ?。?)影片執(zhí)行模塊:能夠按照一定的時間順序執(zhí)行影片。

 ?。?)ActionScript解析引擎:能夠響應(yīng)用戶的交互行為并更好地控制Fly文檔的行為,。

  考慮到使用機頂盒播放flv視頻時操作交互類flv文檔時的非便利性,故此我們當(dāng)前實現(xiàn)版本中主要解決了播放時必須的問題,,主要功能接口描述如下,。

  FLVDEC_create(Engine_Handlehandle,string name),;用于創(chuàng)建FLV解碼器實例,。

  FLVDEC_control(FLVDEC_Handle, FLVDEC_Cmd id,,F(xiàn)LVDEC ̄DynamicParams* params,,F(xiàn)LVDEC_Status*status);用于在∏V解碼器實例中實現(xiàn)FLV播放控制,。

  FLVDEC_process(FLVDEC_Handle handle,,XDM_BufDesc* inBufs,XDM BufDesc* outBufs,,F(xiàn)LVDEC InArgs* inArgs,,F(xiàn)LVDEC_OutArgs*outArgs);在FLV解碼器實例中實現(xiàn)FLV播放,。

  FLVDEC delete(FLVDEC_Handle handle),;用于刪除FLV;解碼器實例,。

  用戶界面庫

  用戶界面庫基于DirectFB,。DirectFB是專門為滿足嵌入式設(shè)備要求而開發(fā)的小巧、強大,、靈活和易于使用的圖形系統(tǒng),,并且試圖成為一個建構(gòu)于Linux Framebuffer Device之上的新圖形標(biāo)準。它在FrameBuffer的基礎(chǔ)上提供了圖形加速,、輸入設(shè)備處理提取,、透明窗口和多重顯示層的功能,,能夠?qū)η度胧较到y(tǒng)GUI有較好的支持。與那些通用的嵌人式GUI系統(tǒng)相比,,它具有非常簡潔,、高效的體系結(jié)構(gòu)和硬件圖形加速功能。

  運行效果

  在測試用的ΛRM2440板子上播放流暢,,截圖參見圖6,。

運行效果圖
 


圖6 運行效果圖

  結(jié)論

  本文設(shè)計并初步實現(xiàn)了IPv6環(huán)境下嵌入式互聯(lián)網(wǎng)視頻點播應(yīng)用架構(gòu)。在有限資源系統(tǒng)開發(fā)中,,使用軟件系統(tǒng)工程的思想,,用分層結(jié)構(gòu)假設(shè)開發(fā)架構(gòu),在實驗環(huán)境中測試播放較為順暢,。生產(chǎn)環(huán)境中,,采用具備更好DSP性能的輔助CPU,配合本文的ARM芯片實現(xiàn)本架構(gòu),,可以更為丌頁暢地播放網(wǎng)絡(luò)視頻,,進一步提高系統(tǒng)的性能。

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。