IPTV播放器研究與設計碩士畢業論文_第1頁
IPTV播放器研究與設計碩士畢業論文_第2頁
IPTV播放器研究與設計碩士畢業論文_第3頁
IPTV播放器研究與設計碩士畢業論文_第4頁
IPTV播放器研究與設計碩士畢業論文_第5頁
已閱讀5頁,還剩77頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目錄 TOC o 1-5 h z 圖 錄. I表 錄. II摘 要. III HYPERLINK l bookmark10 o Current Document ABSTRAC.T V第一章 緒論 . 1 HYPERLINK l bookmark14 o Current Document 1.1 課題的目的和意義 . 1 HYPERLINK l bookmark16 o Current Document 1.2 國內外研究現狀 . 2 HYPERLINK l bookmark18 o Current Document 1.3 本文的研究內容 . 41.3.1 IPTV 播放器框架設計 41.3

2、.2 IPTV 播放器內核設計與實現 41.3.3 IPTV 播放器內核接口庫層實現 4 HYPERLINK l bookmark20 o Current Document 1.4 本文的組織結構 . 5 HYPERLINK l bookmark22 o Current Document 1.5 本章小結 . 5 HYPERLINK l bookmark24 o Current Document 第二章 IPTV 播放器框架設計 6 HYPERLINK l bookmark26 o Current Document 2.1 播放器基本原理 . 6 HYPERLINK l bookmark28

3、o Current Document 2.2IPTV 播放器框架設計思路 7 HYPERLINK l bookmark30 o Current Document 2.3IPTV 播放器框架分層結構 72.3.1 業務層 . 82.3.2 播放器內核接口庫層 . 112.3.3 播放器內核層 . 12硬件適配層 . 12 HYPERLINK l bookmark32 o Current Document 2.4IPTV 播放器各層間通訊方式 13 HYPERLINK l bookmark34 o Current Document 2.5IPTV 播放器支持的技術特性 15 HYPERLINK l

4、 bookmark36 o Current Document 2.6本章小結 . 17 HYPERLINK l bookmark38 o Current Document 第三章 IPTV 播放器內核設計與實現 18 HYPERLINK l bookmark40 o Current Document 3.1IPTV 播放器內核設計思路 18 HYPERLINK l bookmark42 o Current Document 3.2IPTV 播放器內核架構及各組件功能 19 HYPERLINK l bookmark44 o Current Document 3.3組件之間的連接方式 . 21 H

5、YPERLINK l bookmark46 o Current Document 3.4IPTV 播放器內核核心模塊的設計與實現機制 223.4.1數據源的讀取 . 223.4.2數據的無復制傳送 . 243.4.3媒體文件解析 Demux 243.4.4音視頻快進快退 . 25音視頻連播 . 253.4.6多媒體文件的網絡點播 . 25 HYPERLINK l bookmark48 o Current Document 本章小結 . 27 HYPERLINK l bookmark50 o Current Document 第四章 IPTV播放器內核接口庫層實現 28 HYPERLINK l

6、bookmark52 o Current Document 4.1IPTV 播放器內核接口庫層與其它層的關系 28 HYPERLINK l bookmark54 o Current Document 4.2IPTV 播放器內核接口庫層接口定義 284.2.1播放控制 . 29422VC操作 34參數設置 44狀態信息獲取 45錯誤值列表 49 HYPERLINK l bookmark56 o Current Document IPTV播放器內核接口庫應用示例 49 HYPERLINK l bookmark58 o Current Document 本章小結 52 HYPERLINK l boo

7、kmark60 o Current Document 第五章 IPTV播放器測試 53 HYPERLINK l bookmark62 o Current Document 測試目的 53 HYPERLINK l bookmark64 o Current Document 測試環境 53終端硬件環境 53終端軟件環境 53 HYPERLINK l bookmark66 o Current Document 測試項及其測試過程和結果 54播放器對各種格式的支持情況 54VCRB作及之間的切換 57不同視頻文件的連播 59 HYPERLINK l bookmark68 o Current Docum

8、ent 本章小結 60 HYPERLINK l bookmark70 o Current Document 第六章 總結與前景 61 HYPERLINK l bookmark72 o Current Document 參考文獻 62碩士學位論文 碩士學位論文 圖錄 TOC o 1-5 h z 圖1播放器播放步驟圖 6圖2播放器分層結構示意圖 8圖3新浪業務代碼組織結構圖 9圖4業務層與其它各模塊的關系 10圖5業務進程主流程 11圖6播放器各層通訊示意圖 13圖7業務層應用、內核接口庫、播放器內核交互序列圖 14圖8 DirectShow 系統框架圖 18圖9多媒體播放器內核架構示意圖 20圖

9、10多媒體播放器整體結構圖(以兩個播放器內核為例) 21圖11數據源類關系圖 23圖12 init() 流程圖 30圖13播放器內核的播放器啟動流程圖 31圖14正常播放流程圖 33圖15停止播放流程圖 34圖16選時播放流程圖 36圖17播放轉暫停流程圖 38圖18快進、快退或者暫停轉播放的流程圖 39圖19播放轉快進流程圖 42圖20播放轉快退流程圖 43圖21 VCR互操作圖 58表錄 TOC o 1-5 h z 表1內核接口庫層定義的接口函數 28表2 IPTV播放器支持的文件格式及編碼格式 54表3 VCR測試過程典型問題及解決情況 58表4連播測試過程典型問題及解決情況 59獨創性

10、聲明本人聲明所呈交的畢業論文是我個人在導師指導下進行的研究工作及取 得的成果。盡我所知,除文中已經標明引用的內容外,本論文不包含任何其 他個人或集體已經發表或撰寫過的研究成果。對本文的研究做出貢獻的個人 和集體,均已在文中以明確方式標明。本人完全意識到本聲明的法律結果由 本人承擔。論文作者簽名:日期:年 月 日畢業論文版權使用授權書本畢業論文作者完全了解學校有關保留、使用畢業論文的規定,即:學 校有權保留并向有關部門或機構送交論文的復印件和電子版,允許論文被查 閱和借閱。本人授權學校要以將本論文的全部或部分內容編入有關數據庫進 行檢索,可以采用影印、縮印或掃描等復制手段保存和匯編本論文。保密,

11、在解密后適用本授權書.本論文屬于不保密口。(請在以上方框內打V )畢業論文作者簽名:指導教師簽名:日期:年 月曰日期:年 月曰IPTV交互式互聯網電視,以其特有的互動性、內容的豐富性與及時性吸引了眾多用戶, 成為電信及廣電部門、電子及軟件企業爭相搶奪的新興市場。IPTV通常基于嵌入式系統開 發,由于硬件平臺的多樣性導致業界尚無標準可循,而常見的開源播放器又無法滿足不同 廠家的功能需求。因此,開展IPTV播放器關鍵技術研究有意義。本文以設計一種支持可復用、易擴展的先進播放器框架及內核為目標,針對其中所涉 及的關鍵技術問題展開研究。完成的主要工作包括:研究了播放器框架。基于播放器的基本原理和分層結

12、構的優勢,提出了基于層次 結構的IPTV播放器框架的設計思路。依據該思路,設計了一個易擴展、可復用程度高的 先進框架。該框架將播放器從底層硬件到上層應用劃分為四層:硬件適配層、播放器內核 層、播放器通訊控制層、業務層。各層功能專一,層間接口規范,各層可獨立擴展自身功 能。研究了播放器內核。借鑒微軟 DirectShow架構和操作系統的微內核思想,提出了 基于分層結構和流水線理念的IPTV播放器內核設計思路:內核按照服務層級來劃分模塊, 內層模塊完成實際工作任務,外層模塊完成邏輯控制,內層為外層提供服務;播放器內核 同時采用組件化、鏈路化的方式,完成流媒體的解析和解碼,從而實現對新增媒體格式的

13、擴展支持。設計了播放器內核接口庫。為避免播放器內核因夾雜播放邏輯而影響其在上層業務中的普適性的問題,定義了一套 API接口供業務層調用。接口庫本身與播放邏輯無關, 播放邏輯及具體業務的處理,由業務層及應用層實現,其通過TCP連接與內核進行通訊,實現對內核的控制及狀態查詢,并接收內核發送的事件通知。在框架與內核研究的基礎之上,實現了播放器內核與內核接口庫并進行了測試。 測試結果表明,所設計IPTV播放器能夠滿足應用系統功能需求。關鍵詞:IPTV,互聯網電視,流媒體,播放器,視音頻解碼AbstractIPTV with its peculiar in teractivity,content ric

14、h ness,timeli ness,attractednu merous users becomethe telecom muni cati ons and Broadcasti ng sector, electr onics and software compa nies scramble for emerg ing markets. IPTV is usually based on embeddedsystem development, the industry due to the diversity of hardware platform, there is no sta ndar

15、d to follow, and com mon ope n source players cannot meet the fun cti onal requireme nts of differe nt manu facturers. Therefore, research on key tech no logies IPTV players sen se.In this paper, design a kind of support reusable, easy to extend advaneed player framework with the kernel as the goal,

16、 for the researches on the key technical problems invo Ived.The mai n work in cludes:Player framework is studied. Based on the basic prin ciple of players and the adva ntages of hierarchical structure , IPTV players framework desig n train of thought is proposed based on hierarchical structure .Acco

17、rd ing to the ideas, desig n a high degree of easy exte nsion, reusable adva need framework. Framework adopts hierarchical structure, the player from the un derly ing hardware to upper application is divided into four layers: hardware adapter layer, player kernellayer, player com muni cati on con tr

18、ol layer, bus in ess layer. Each layer function specific, In ter-layerin terface specificati on, eachlayer can exte nd its functionin depe nden tly.Player kernel is studied. Using Microsoft DirectShow architecture and themicro kernel thoughts of operating system, Players kernel design ideas is propo

19、sed based on hierarchical structure and Pipeli ning con cept : Kernel module in accordance with the service level to divide, the inner module do the actual work tasks, the outer complete logic control module, the inner to the outer provide services; And,Player kernel adopts the way of modularization

20、, link , the complete stream ing parse and decode, en abli ng support for the expa nsion of the new media format.Desig n the player kernel in terface library. To avoid player kernel playedfor in clusi on logic and affect the uni versal problems in its bus in ess in the upper, defi nes a set of apis,

21、 calli ng for bus in ess layer. I nterface library itself has no thi ng to do with play logic, logic and the process ing of specific bus in ess Is realized by the bus in ess layer and applicatio n layer. through the TCP connectionwith the kernel of com muni cati on. It realized the con trol system f

22、or the kernel and status query, receive eve nt no tificati ons sent by the kern el.TestBased on the framework and kernel research, realize the player kernel and the kernel in terface library, and achieve the core fun ctio nality of IPTV players required, and the player kernel and the kernel in terfa

23、ce library was tested. results show that the desig n IPTV players can meet the dema nd of the applicati on system fun cti on.Keywords: IPTV, Internet TV, streaming media, player, Video and audio decoding第一章緒論第 頁碩士學位論文第 頁第一章緒論1.1課題的目的和意義IPTV(I nternet Protocol Televisi on )交互式互聯網電視,以其特有的互動性、內容豐富性、及時性

24、吸引了眾多用戶,成為電信及廣電部門、電子及軟件企業爭相搶奪的新 興市場。通常而言IPTV系統是以視音頻服務為主要業務,同時提供游戲、股票等增值服務 的系統業務的綜合體,而視頻播放是IPTV的核心業務,視頻播放器是IPTV的核心模塊。所 以隨著IPTV的發展與普及,IPTV播放器也顯示出至關重要的作用。IPTV已經從其最初的以?互聯網+機頂盒終端+普通電視?的形式,轉而向一體式智能 電視(內置IPTV模塊)、PC平臺、手機電視等多種多樣的形式發展。播放器在 IPTV上的應 用特點是:媒體格式多種多樣、數據源日益增多(如本地文件、各種不同的網絡協議)以 及硬件平臺的多樣性。基于以上特點,通常廠家對

25、IPTV播放器有以下需求:1)全格式支持要求支持常見的主流文件格式,并同時具備添加新格式支持的能力。2)全VC操作支持VCR( Video Cassette Recordi ng )功能泛指各種對視頻的操作控制。如:播放、暫停、快進、快退、選時、停止、音量調節、聲道切換、靜音等操作。播放器要支持提供全 VC操作的能力、允許各VC操作狀態之間的自由切換,使視頻應用業務可以提供給用戶友 好的人機交互。3)能同時適應本地媒體文件播放和網絡媒體文件播放播放器除了可以播放本地的視頻節目外也可播放網絡點播或直播節目。本地媒體文件是指存儲在機頂盒內置存儲設備如Flash存儲器、內置硬盤,或可熱插拔的移動存儲

26、設 備如SD卡、U盤、移動硬盤等上的媒體文件。網絡媒體文件,則是指那些位于遠端服務器,需要通過網絡協議交互,通過網絡獲取 到數據的媒體文件。4)無縫連續播放支持一般的播放器在連續播放多個媒體文件時,媒體文件切換過程會有短暫停頓,或畫面靜止或聲音停頓。在機頂盒這種專門的播放設備上,在播放一個電影前一般要插播一段廣 告,另外,同一部電影往往由多個分片存儲的節目文件組成,為了讓用戶查覺不到媒體文 件切換導致的停頓感,在對多個分片進行連續播放時,需要實現無縫的連續播放。5)二次開發接口支持視音頻播放(解復用、解碼)是一個較為專業的技術領域,并不是每個開發人員都能熟悉其中的原理,能夠做相應的開發。在機頂

27、盒中,視音頻應用的形式又多種多樣,因此,需要提供一套簡單易用、功能強大且足夠細分的視頻播放應用接口,使開發人員能夠在其 上構建各種和媒體播放有關的應用程序和服務。IPTV通常是嵌入式系統,與通用計算機系統不同,其軟件與硬件是緊密關聯的。IPTV 播放器作為IPTV系統中的核心應用軟件,也是與硬件平臺緊密相關的。由于IPTV硬件平臺尤其是解碼硬件多樣性問題的存在,導致目前還沒有統一的標準供機頂盒制作廠家遵循, 市場上也沒有完全支持以上特點的播放器內核可以使用,常用的開源播放器更是無法滿足 不同廠家對IPTV業務能力的擴展需求。除此之外,嵌入式設備資源有限性(處理器運算速度不夠高,運行內存不夠大)

28、也使 嵌入式播放器的開發難度遠遠高于PCS放器。目前國內自主研發的嵌入式播放器分辨率 低,流暢度差;而國外IT公司能提供的嵌入式播放器雖然在分辨率和流暢度上有很大優勢, 但是價格偏高。因此,開展IPTV播放器的研究,提供一種價格低廉的高性能IPTV播放器,對國內IPTV 行業發展有著積極的推動作用。課題針對IPTV播放器中的關鍵技術及模塊實現展開研究,具有較高的應用價值。本文 的研究目的是開發一個可復用程度高、 易擴展、利于開發各種音視頻播放應用的先進框架。 在這個框架下,通過添加支持不同格式的解析模塊,就能為終端機頂盒提供新的媒體格式 的播放支持,利用其提供的一系統列接口,也能在其上構建各種

29、不同業務的應用模塊,以 提高軟件模塊的可復用性,可極大地縮短開發各種不同多媒體應用的開發周期,降低開發 成本,為企業帶來長久效益。1.2國內外研究現狀1)國內外IPTV發展研究現狀隨著科技發展,用戶已不再滿足于電視業務的單向廣播模式,希望在電視上實現雙向 交互功能。IPTV的出現使這種愿望成為可能。IPTV主要是以網絡機頂盒作為用戶終端,以 顯示器為顯示設備,以寬帶為主要傳輸網絡,為用戶提供多媒體信息服務。播放器是IPTV終端機頂盒的關鍵模塊,主要完成IPTV的流媒體業務和其他業務的圖形及伴音展示2。由于IPTV巨大的潛在價值和商業空間,各個國家紛紛發展IPTV2。美國早在2005年9月,運營

30、商Verizon率先宣布推出IPTV月艮務。在韓國,電信企業在發展IPTV方面也走在了 前面。韓國電信在2007年7月推出IPTV以來,至U當年9月底已發展了 14.8萬用戶。韓國第 二大網絡門戶Daun通信在2008年也宣布進入IPTV市場。歐洲是全球最大的IPTV市場,IPTV 在法國呈現爆炸性增長。法國目前已經成為IPTV領先發展的國家。我國IPTV的發展始于2003年4。國家從2005年5月開始整頓國內IPTV市場。要求從事信 息網絡傳播視聽節目業務的單位必須符合廣電總局的申批條件。由于IPTV的發展不可避免會出現電信和廣電業務的互相滲透問題,而受沖擊最大的就是廣電部門,因此從自身利益

31、4考慮,廣電總局慎重發放證照,對電信運營更是較多限制。2011年年底,互聯網電視獲得廣電總局的?解禁?,中國電信和廣地廣電運營商紛紛加入試點,試圖奪取主動權IPTV的發展需要幾個產業鏈來支撐2:內容制作商、內容集成商、網絡運營商。雖然 已經過了多年的運營,各國IPTV運營商仍然面臨運營模式和生態鏈的問題,但各運營商都 在積極探索自己的發展模式2。國內外IPTV播放器發展研究現狀全球播放器的發展大致經歷了三個階段:第一階段:格式封閉階段這是個?各自為政?的階段。微軟公司的Windows Media Player和Real公司的RealPlayer是這一階段的典型代表。Windows Media

32、Player 只支持微軟公司自有格式 WMV(Windows Media Video)、AVI (Audio Video In terleaved)文件的播放及通過微軟的 MediaServer服務器軟件投遞的點直播服務。RealPlayer則僅支持real格式的文件播放及RealServer (后升級為HelixServer )投 遞的點直播服務。這個階段的播放器支持格式有限,并且無法擴展使用。在本課題的IPTV系統開發中無法使用。第二階段:兼容并處時代典型代表是Media Player Classic 、VLC MPlayer。這些開源項目的共同特點是廣泛 的格式支持及開源。不少播放器都是

33、在這三個項目的基礎上修改而來,如韓國Kmplayer、中國的暴風影音、射手播放器等。這個階段的播放器支持格式多,并且開源可擴展,但是都是基于PC設備的,無法在特定硬件平臺的嵌入式設備中擴展使用。第三階段:多媒體框架時代這一時期的典型特征是提供統一的媒體開發框架,開發者在些框架上,加入自己的插 件或模式,即可使播放器支持更多的模塊或功能。和第二代相比其特點是提供的是重要的 框架,而不是具體的格式或功能支持。如微軟的DirectShow,google的an droid平臺的Ope nCore等。這個階段的播放器為我們提供了很多播放器框架開發的思路,但是框架本身都是基于 一定平臺的,無法滿足在任意平

34、臺上的擴展使用。隨著全球播放器的發展,對IPTV業務的播放能力提供了支持。但是根據當前的播放器 發展情況可以發現:由于IPTV所用到的硬件設備各有差異,所以目前對IPTV播放器沒有統 一的播放器或播放器框架可以直接使用。所有廠家都需要根據設備架構和硬件平臺,開發 配套的視頻播放器。當前各個廠家對IPTV播放器的研究,都停留在所選用設備架構和硬件平臺基礎上的播 放器研究與開發,以滿足自身IPTV系統所用機頂盒產品的需求。鑒于IPTV系統中硬件平臺 的多樣化,導致各廠家開發的IPTV播放器無法通用或擴展使用,所以研究和開發可通用的 IPTVft放器框架對推進IPTV系統的發展具有積極意義。1.3本

35、文的研究內容IPTV播放器框架設計鑒于分層結構的優勢,IPTV播放器采用分層結構的框架。為了更好地組織整體的軟件 結構,將播放器從底層硬件到上層應用劃分為四層:硬件適配層、播放器內核層、播放器 通訊控制層、業務層。硬件適配層:該層針對不同的硬解碼芯片制造商的硬件平臺提供適配功能,為上層提 供統一的接口。播放器內核層:是播放器內核進程,通過調用硬件適配層提供的接口,完成與媒體處 理相關的工作。播放器通訊控制層:通常將該層叫做?播放器內核接口庫層?。該層通過TCP連接與內核進程進行通訊,實現對內核的控制及狀態查詢,接收內核發送的事件通知。接口庫本 身無任何關于播放邏輯的控制,播放邏輯及各種與具體應

36、用需求相關的處理,由業務層及 業務層之上的應用層實現。業務層:業務層實現外部應用環境對播放器的調用,它的存在是以從繁多的播放業務 中將播放器內核解放出來為目的,將業務層次的控制調用、功能層次的控制調用等集于一 體。IPTV播放器內核設計與實現在整個播放器軟件分層結構中,上層媒體播放相關業務應用,通過播放器通訊控制層 控制著播放器內核進程,播放器內核進程是真正負責處理和實現多媒體播放功能的實體, 是播放軟件體系中的核心,因此我們稱其為播放器內核進程。在設計新播放器內核時,借鑒了 DirectShow架構和操作系統的微內核思想,讓播放 器內核專一做與媒體內容相關的工作,即:只讓它完成音視頻流的播放

37、功能,而不再直接 參與數據的獲取,數據的獲取可以通過在播放器內核外圍擴充相應的功能模塊來完成。比 如:需要使用 HTTR MM( Membership ManagementSystem)、RTSP( Real Time Streaming Protocol )呵、P2P (peer-to-peer network )等協議從網絡上獲取數據時,只需要開 發出相應的功能模塊掛接上即可,而不需要對播放器內核做任何修改;另外,需要增加對 新媒體格式的支持時,只需要按照定義好的接口,開發針對該媒體格式的解復用組件 DemuxFilter等模塊,然后加入播放器內核中即可,不需要對播放器框架做任何修改。播放

38、器內核,采用類似DirectShow中的Filter組件的概念,采用組件化、由組件和 組件連接的形成鏈路的方式,來完成流媒體的解析(DemuX及解碼(Decoder)。播放器內核按照服務層級來劃分模塊,內層模塊為外層模塊提供服務,由外層的模塊 完成邏輯控制,內層模塊完成實際的工作任務。IPTV播放器內核接口庫層實現播放器內核接口庫層(即:播放器通訊控制層)提供一套接口,供業務層對播放器內 核進程進行控制,從而控制視頻的播放。其實質是一套網絡通訊的客戶端發包工具,將播 放指令按照和播放器內核約定的指令數據結構發送數據包給播放器內核進程。此層一般不 包含播放邏輯控制,以避免加入播放邏輯而影響其在上

39、層業務服務層中不同業務應用中的 普遍適用性。1.4本文的組織結構本文共分為六章,全文組織如下:第一章:緒論。主要對IPTV播放器研究的目的和意義、國外內研究現狀以及本文要研 究的內容進行了概述。第二章:IPTVffi放器框架設計。基于播放器的基本原理和分層結構的優勢,提出了 IPTV播放器系統框架的設計思路。依據該思路,設計了一個可復用程度高、易擴展、利于開發 各種音視頻播放應用的先進框架,并對框架的層次結構、層間通訊和框架所支持的技術特 性進行了闡述。第三章:IPTV播放器內核設計與實現。借鑒微軟 DirectShow架構和操作系統的微內核 思想,提出了 IPTV播放器內核設計的思路:讓播放

40、器內核專一做與音視頻流播放相關的工 作,不再直接參與數據的獲取等工作。基于該思想,設計了播放器內核的架構,并給出了 其主要邏輯模塊的實現。第四章:IPTV播放器內核接口庫層實現。首先闡述了播放器架構分層結構中的內核接 口庫層與其它層的關系。然后定義出一套 API接口,該接口供業務層調用。最后以示例方 式說明了接口的應用。第五章:IPTV播放器測試。首先給出了測試目的和測試環境,然后描述了測試過程, 之后通過調用播放器內核接口庫提供的接口,對播放器內核和播放器內核接口庫進行了功 能測試。第六章:總結與前景。主要對IPTV播放器的研究情況進行總結,同時指出本文所研究 內容有待完善的地方,最后對未來

41、發展進行了展望。1.5本章小結本章通過對IPTV播放器功能需求及相關領域國外內研究現狀的分析,論述了課題研究 的目的和意義,并概述了課題研究中需解決的幾個關鍵技術問題。第二章IPTV播放器框架設計IPTVffi放器的核心是播放器,在對IPTV播放器框架進行設計時,首先需研究播放器的 基本原理,在此基礎上,基于分層思想設計了 IPTV播放器的框架結構,并對該框架的分層 結構和層間通訊方式進行分析,最后給出該結構可支持的技術特性。2.1播放器基本原理對于音視頻播放,一般可有以下四個基本步驟:數據源讀取(Source reader )、解復用(Demux, Demultiplexer 的縮寫)、解碼

42、(Decoder)、輸出(Ren der),如圖 1 所示。解復用Demux解碼Decodex輸出Render圖1播放器播放步驟圖1、數據源讀取數據源讀取就是為了獲取播放所需的源數據。電腦本地硬盤上存儲的媒體文件、用于 點播的HTTP艮務器上的媒體文件、UDP&播的媒體文件、RTSP艮務器提供的RTP數據包等 567,均為有效的數據源。讀取成功后,就可開始解讀該媒體文件解復用。2、解復用每種多媒體文件都有其特有的封裝格式。解析多媒體文件的封裝格式,并讀取所需的 特定內容的步驟,稱之為解復用。解復用的過程中可以分離出字幕數據、音頻ES流、視頻ES(Elementary Stream )流等多媒體

43、信息。原始的視音頻數據經過壓縮、編碼之后,即 可生成基本碼流(ES流)。常見的編碼格式有MPEG-f、MP3MPEG-II、H.264、MPEG-49 等。3、解碼解碼是編碼的逆過程,ES流數據經過解碼器的解碼運算,被還原成原始的視頻或者音 頻。解碼器有純軟件、硬件芯片兩大類,前者便于升級,后者更加穩定高效。4、輸出解碼之后的視頻信息將以YU或RG格式輸出到顯示外設、音頻信息將以PCM脈沖編碼 調試)的形式輸出到聲音外設,整個過程也被稱為渲染。RGB!種基于三基色原里的色彩表示法。 根據三基色原理,紅(Red)、綠(Green)、 藍(Blue)是三種最基本的顏色,利用不同分量的基本顏色可以組

44、成所有的可見光。電視 機、顯示器的成像技術大多利用了三基色原理。YUV!另外一種類似于RBG勺色彩表示法。對連續變化的模擬信號進行抽樣、量化、編碼,最終生成數字信號的過程就是脈沖編 碼調制,簡稱為PCM.經過數據源讀取、解復用、解碼、輸出四個步驟之后,就完成了多媒體文件的播放。一般而言,芯片制造商已經為機頂盒設備設計了專用的視音頻解碼和輸出芯片,并為第二章IPTV播放器框架設計第 頁第二章IPTV播放器框架設計第 #頁開發人員提供了配套的SDK軟件開發包Software Development Kit).在此基礎之上,機頂盒開發人員可以很簡單的完成視音頻輸出。因此,數據源讀取與解復用才是機頂盒

45、播放器 軟件的核心功能。這兩個部分也就是我們研究IPTV播放器的核心。IPTV播放器的研究與設計,就是對數據源讀取和解復用這兩部分的實現進行研究與設 計。因為解復用需要調用硬件解碼芯片提供的解碼及輸出功能接口,所以該部分需要能支 持IPTV機頂盒設備常用的硬件解碼芯片。這就對解復用部分的研究與設計提出了易擴展的 特性需求。這是在設計IPTV播放器框架時要重點考慮的問題。2.2 IPTV播放器框架設計思路在一般的系統框架設計中,往往都采用分層式結構,因為分層式結構具有以下優勢:1)有利于各層邏輯的復用;2)易于替換原有層次內的實現;3)能夠降低層次與層次的依賴度;4)可以使不同級別的開發人員只關

46、注整個結構中的某一層;5)有利于標準化。顯而易見,在軟件開發過程中采用分層式設計可以:減少個人關注范圍、復用邏輯模 塊、降低耦合度、制定統一的標準。根據劃分的層次,定義好層間接口之后,開發人員可以僅僅專注于自己所負責的邏輯 模塊,無需關心其它模塊,這樣可以相互獨立的開展工作、齊頭并進。例如,界面設計師(UI)只需思考如何滿足并提高用戶體驗;軟件工程師只需要考慮如何實現播放器的功能 UI不用關心播放器功能、軟件工程師不用考慮界面應該如何布局,每個崗位的職責都很專 一,如此一來,開發進度自然能夠保證。耦合度高了意味著,軟件的邏輯不清、功能彼此依賴,某處一旦修改往往會發生牽一 發而動全身的大面積修改

47、,嚴重影響進度和穩定性。軟件的分層結構,有效的降低了層間 的耦合度,并且具有良好地擴展性。鑒于分層結構的優勢,設計IPTVffi放器框架時也采用了分層結構。不同層次的功能定位、層間通訊方式,嚴重的影響了系統的可擴展性、可替換性。因 此,設計IPTV播放器框架時,較多的考慮層次功能需求和通訊接口的標準化。2.3 IPTV播放器框架分層結構圖2是基于2.2的設計思路,所設計的IPTV播放器框架的分層結構圖。碩士學位論文碩士學位論文業等層底層解碣驅動適配層視頻業務應用層巫視頻業務服務層播放踞內核接口庫播放器通訊控制層機頂盒硬件平臺1機頂盒硬件平臺門DecoderDecoderA4訃RendexRen

48、der圖2播放器分層結構示意圖如圖2所示,根據播放器功能與軟件組織需求,將播放器涉及的進程和庫分為三層, 分別如下:業務層、播放器內核接口庫層、播放器內核層2.3.1 業務層媒體業務層將種類繁多的播放業務抽象為控制調用和功能調用兩大類接口。外部應用 通過調用媒體業務層對外提供的接口實現多媒體播放功能。媒體業務層的存在使得外部應 用與播放器內核的耦合度大大降低,同時播放器內核得以專注于播放核心工作,而無需關 心紛繁復雜的封裝格式和控制方式。根據視頻業務的功能與結構需求,將其細分為應用層與服務層兩個子層。1、視頻業務應用層根據多媒體業務的用戶需求、多媒體格式,視頻業務應用層有許多種變現形式和側重

49、點。例如,本地硬盤或者移動硬盤中的媒體應用大多以 ?我的影庫?的形式表現給用戶, 側重于?本地播放?; ?網絡課件?欄目,用于播放來自網絡的遠程視頻節目,側重于實第8頁第二章IPTV播放器框架設計第 頁碩士學位論文第 頁現遠程教育的在線點播和電視直播功能。2、視頻業務服務層視頻業務服務層處于視頻業務應用層的下方,專門為紛繁復雜度視頻應用業務提供所 需的播放服務。同時,視頻業務服務層處于通訊控制層上方,結合通訊控制層為視頻業務 應用層提供有針對性的功能接口。例如,以播放本地文件為主要業務的?我的影庫?,如果發現與視頻文件匹配的字幕文件,在播放視頻時,應用層將嘗試解析并顯示字幕。這個 主動嘗試顯示

50、字幕的過程就是視頻業務服務層為應用層提供的一種服務。有了這個服務, 應用層就無需關心字幕是否存在、字幕的編碼方式等繁雜技術細節。對于需求獨特的視頻應用業務,只需要按照框架內定義好的接口,為其開發匹配的視 頻服務,即可快速的實現相關視頻應用。隨著開發的深入,累積一定量的視頻服務后,當 出現與以往視頻應用業務需求相同或相近的新業務時,可以直接復用現有的視屏業務服 務。不同播放環境下,業務層的功能與表現形式有著顯著的差異。下面以新浪視頻業務為 例,描述媒體業務邏輯層的層次與接口。1)新浪業務代碼組織結構-D MultiMediaServiceManager日亡j src日匸j basecommoE匸

51、ommoniervice.h-_j previewservice-冷 interfa cm B Makefile 叵 previewCommonBusiness. c 三 previeCommoniBusinei ,h-二 man宦)main.cpp 宣| Makefile八 sinaService.cpp0 sina5ervke,h畫 MakefileH Makefle畫 Makefile圖3新浪業務代碼組織結構圖目錄結構及功能說明如下:公用的基類代碼存放于base文件夾;previewService文件夾用于存放業務調用接口,業務調用接口被分為業務接口層(in terface )和業務子類

52、與 主函數(manager)2)業務層與其它各模塊的關系圖4給出了業務層與其它各模塊的關系。圖4業務層與其它各模塊的關系頁面調用JS (JavaScript )插件頁面通過調用JS插件開發各種不同的面向頁面的流媒體業務。多媒體播放器業務接口層為多媒體播放器業務設計一個接口層,該接口層并不局限于滿足某一類具體的多媒體 業務。例如,滿足新浪業務的現有接口層,也適用于任意類似于新浪業務的其它播放器業 務。接口層的主要工作內容是:初始化共享內存及其權限值、加載業務進程、向業務進程 傳遞用戶命令、獲取共享內存內聲明的播放器狀態。用戶向業務進程發出一條控制命令后,接口層立即向業務層的共享內存查詢權限信 息

53、,裁決是否允許該用戶進行本向操作。多媒體播放器業務進程為多媒體播放器業務涉及一個業務層進程,需要配合播放器業務接口層同時使用。業 務進程接收并判斷播放器業務接口層傳來的控制命令是否滿足執行條件,然后根據需要改 變播放器狀態,并將播放器最新的狀態信息更新到業務層共享內存里,工業務接口層隨時 訪問。基類、子類、主函數是業務進程的三大核心。業務進程使用面向對象的C+語言編寫,并且廣泛的使用了面向對象的派生、多態、重載等機制。基類代碼里提供豐富的控制命令 和回調命令的接口,但是只實現最常用的那些方法。子類派生于基類,每個子類都是某一 類應用的具體實現,該子類需要重載基類提供的相關接口和方法。例如,需要

54、針對新浪業 務提供一個專門的新浪業務子類,并根據新浪業務的需求重載若干接口和方法。主函數處 于總體協調的位置之上,根據業務需要創建具體的類對象,循環接受消息,并且調用各個子類提供的具體的消息處理方法。 圖5是業務進程主流程。開始根據不同昂業務創建不同的對象、調用mitPlayar函數初始化播啟器啟動線程刷新共亭內存中播旗器狀態循環接收控制命令消息,并調用函eVentProcessiSH處理結東-圖5業務進程主流程業務進程主函數啟動后,首先根據業務需要創建并初始化不同的子類對象,然后調用 Ini tPlayer方法初始化播放器,更新共享內存中的播放器狀態信息,之后就一直處于消息 接收狀態,捕獲接

55、口傳來控制命令并根據命令內容調用恰當的處理方法。2.3.2播放器內核接口庫層播放器內核接口庫層,我們又可以將其叫做播放器通訊控制層。播放器通訊控制層處 于視音頻業務應用程序與播放器內核之間,在二者之間傳遞播控指令并反饋播放狀態。通 訊控制層的接口函數并不對外開放,其它層在使用通訊控制之前,必須與之建立SOCKE連接,以進程間通訊的方式進行指令傳遞和播放狀態反饋。為了確保進程通訊所用SOCKE連接的穩定性,以及數據傳遞的可靠性,通訊控制層選 用TC協議作為基本的連接方式。TC助、議又稱網絡傳輸控制協議(Tran smission Co ntrol Protocol ),可以在客戶端與服務端之間一

56、條可靠的數據傳輸通道,TC協議能夠確保數據的有序、可靠送達目的地。利用TC助、議能夠確保播控指令和播放狀態,按照事件發生 的先后順序到達內核或者上層應用。播放器通訊控制層至少需要提供兩條獨立的 TCP連接。一個連接建立在端口 8082上, 用于視音頻應用程序向播放器內核傳遞播放指令。另一個連接建立在端口8083上,用于播放內核向外傳遞播放器狀態。TCP接本來是可以雙向通訊的,為了能夠快速響應播控指 令、及時反饋播放狀態,使兩類數據分別有各自的通道,互不干擾。相對于雙通道帶來的 穩定性和響應速度,浪費的那一個TCP端 口,顯得微不足道。播控指令是一個格式固定并含有眾多參數的數據包,內核代碼通過解

57、析數據包的格式 和參數,識別出來如何執行一條播放指令。例如,Play指令至少需要包含視音頻文件的路徑或者URL,內核根據該路徑就可找到并開始播放該文件。JumpForworc指令至少需要包含 跳躍的起點和跨度,這樣內核就可以實現一個跳躍播放。播放狀態是由播放器內核觸發的事件信息,用于通知業務應用層播放器當前的狀態。 常見的播放器狀態事件有:播放開始、播放異常、播放完畢等12,或者打開失敗、緩沖不足等錯誤信息。這些關鍵的狀態信息必須及時準確的反饋給業務應用層,確保用戶體驗良 好。2.3.3播放器內核層播放器內核層就是以進程形式形式存在的最基本最核心的視音頻播控功能,有時也被 稱為播放器內進程。上

58、層視頻業務應用程序的所有播放指令最終都由播放器內核進程實 現。例如:上層業務應用中產生的?暫停?指令,經由通訊控制層的TC連接,最終被內核進程捕獲到,內核進程解析出暫停指令,立即暫停播放,并向上層業務應用反饋一條?執 行成功?信息。至此,在內核層、通訊控制層的配合之下,完成條操控指令。播放器內核進程就是一個處于伺服狀態的后臺進程,上層應用通過調用通訊控制層中 的接口,向內核傳遞一個網絡格式的操控指令包,內核收到該指令包后進行必要的解析和 驗證處理之后,執行指令相應的動作。內核進程的播放功能,借鑒了微軟 DirectShow框架,完成視頻播放需要讀取數據源(Reader)、解復用(DemuX、解

59、碼(Deocoder)、輸出(Re nder)這四個基本步驟。 內核進程通過調用底層硬件適配接口完成 ?解碼?和?輸出?。2.3.4硬件適配層適用于視頻播放設備的解碼芯片,可能是來自不同廠家的不同型號的專用芯片。這些 芯片雖然管腳排列、封裝形式不盡相同,但是都是為了支持某種特定的視音頻編碼格式。 由此,引出一個棘手的問題。各個廠家,為自己的芯片提供的SD開發包風格迥異、接口完全不匹配。為了解決這個問題,專門設計了硬件適配層,也可稱為解碼驅動適配層。各個芯片廠商提供的SDK包雖然風格迥異,但是基本原理是相同的。 SD開發包,主要 是提供了一系列接口,上層應用調用相關方法,寫入符合格式要求的 ES

60、數據流,即可實現 視音頻解碼。這也為設計硬件適配層提供了切入點。硬件適配層提供兼容不同解碼芯片的適配功能,為上層提供統一的接口。適配功能需 要實現,各個SD開發包都可能用到的那些功能。例如,初始化解碼器、啟動解碼器、傳 入符合格式的數據頭、傳入ES數據流、開始播放、暫停播放、停止播放等常規操作。針對 不同的硬件平臺,只需額外實現自己特有的那些接口,無需修改上層業務應用,即可支持 多種硬件平臺。硬件適配層提供音頻和視頻兩大類方法。音頻方法主要包括:打開/關閉解碼器、初始化音頻編碼格式、開始播放、寫入數據、調節音量、設置聲道、開始播放、暫停、快進 等。視頻方法主要包括:打開/關閉解碼器、初始化編碼

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論