freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

碩士論文:iptv播放器研究與設(shè)計(jì)-資料下載頁

2025-05-19 12:21本頁面

【導(dǎo)讀】IPTV播放器研究與設(shè)計(jì)。論文提交日期:20xx年9月30日

  

【正文】 出( Render)這四個(gè)基本步驟。 內(nèi)核進(jìn)程通過調(diào)用底層硬件適配接口完成 “ 解碼 ” 和 “ 輸出 ” 。 適用于視頻播放設(shè)備的解碼芯片,可能是來自不同廠家的不同型號的專用芯片。這些 芯片雖然管腳排列、封裝形式不盡相同,但是都是為了支持某種特定的視音頻編碼格式。 由此,引出一個(gè)棘手的問題。各個(gè)廠家,為自己的芯片提供 的 SDK開發(fā)包風(fēng)格迥異、接口 完全不匹配。為了解決這個(gè)問題,專門設(shè)計(jì)了硬件適配層,也可稱為解碼驅(qū)動適配層。 各個(gè)芯片廠商提供的 SDK包雖然風(fēng)格迥異,但是基本原理是相同的。 SDK開發(fā)包,主 要是提供了一系列接口,上層應(yīng)用調(diào)用相關(guān)方法,寫入符合格式要求的 ES數(shù)據(jù)流,即可實(shí) 現(xiàn)視音頻解碼。這也為設(shè)計(jì)硬件適配層提供了切入點(diǎn)。 硬件適配層提供兼容不同解碼芯片的適配功能,為上層提供統(tǒng)一的接口。適配功能需 要實(shí)現(xiàn),各個(gè) SDK開發(fā)包都可能用到的那些功能。例如,初始化解碼器、啟動解碼器、傳 入符合格式的數(shù)據(jù)頭、傳入 ES數(shù)據(jù)流 、開始播放、暫停播放、停止播放等常規(guī)操作。針對 不同的硬件平臺,只需額外實(shí)現(xiàn)自己特有的那些接口,無需修改上層業(yè)務(wù)應(yīng)用,即可支持 多種硬件平臺。 硬件適配層提供音頻和視頻兩大類方法。音頻方法主要包括:打開 /關(guān)閉解碼器、初始 化音頻編碼格式、開始播放、寫入數(shù)據(jù)、調(diào)節(jié)音量、設(shè)置聲道、開始播放、暫停、快進(jìn)等。 視頻方法主要包括:打開 /關(guān)閉解碼器、初始化編碼格式、寫入數(shù)據(jù)、查詢緩沖進(jìn)度、開始 播放、暫停、快進(jìn) /快退等。其中音視頻寫入數(shù)據(jù)時(shí)一個(gè)很關(guān)鍵的方法,對寫入的數(shù)據(jù)格式 有特殊要求。 碩士學(xué)位論文 第 14頁 寫入的音視頻數(shù)據(jù)必須包含 “ 媒體格式說明( Meta) ” 和 “ 媒體流數(shù)據(jù)( ESData) ” 。 “ 媒體格式說明 ” 內(nèi)的眾多信息,是解碼器進(jìn)行解碼工作必不可少的指導(dǎo)參數(shù)。 “ 媒體格 式說明 ” 要包含以下這些主信息: 1)開始標(biāo)志( MagicStart):這是一個(gè)事先約定好的固定字符串,用于聲明每段媒體 流數(shù)據(jù)的起始位置,當(dāng)數(shù)據(jù)出錯(cuò)時(shí),可根據(jù)該標(biāo)志,重新檢索到一段數(shù)據(jù)流的起始位置; 也可以在數(shù)據(jù)流出錯(cuò)時(shí),避免程序崩潰。 2)編碼格式:指引解碼器加載相應(yīng)的解碼模 塊。 3)ES標(biāo)志:標(biāo)志著這一幀數(shù)據(jù)的屬性。是一幀的開始還是一幀的結(jié)束,還是完整的 一幀。 4)視頻寬度:以像素為單位給出視頻的寬度; 5)視頻高度:以像素為單位給出視頻的高度; 6)時(shí)間戳:主要是用來同步的,單位一般是毫秒,比如在視頻文件中第 10分鐘開始 播放該段媒體流,那么其時(shí)間戳就是 10*60*1000=600000毫秒。 7)EsData數(shù)據(jù)長度:媒體流的數(shù)據(jù)長度; 8)結(jié)束標(biāo)志( MagicEnd):類似于 MagicStart,用于聲明每段媒體流數(shù)據(jù)的結(jié)束位置。 媒體流數(shù)據(jù)( ESData)處于 Meta信息之后。 Meta信息必須與 ESData匹配,否則要么無 法播放,要么播放期間異常終止。 IPTV 播放器各層間通訊方式 基于 IPTV播放器的分層結(jié)構(gòu),在開發(fā)播放器時(shí),需重點(diǎn)關(guān)注內(nèi)核層、內(nèi)核接口層和業(yè) 務(wù)層。這三層之間的通訊方式如圖 6所示。 圖 6播放器各層通訊示意圖 業(yè)務(wù)層應(yīng)用:播放器相關(guān)的業(yè)務(wù)層。包括視頻業(yè)務(wù)服務(wù)層和視頻業(yè)務(wù)應(yīng)用層。該層通 過調(diào)用 “ 內(nèi)核接口庫層 ” 的接口 API實(shí)現(xiàn)相應(yīng)的功能。 內(nèi)核接口庫層:通過 TCP協(xié)議與播放器內(nèi)核建立連接,通過這個(gè)連接向內(nèi)核發(fā)送控制 命令,并向內(nèi)核查詢播放狀 態(tài);內(nèi)核的播放事件,也通過這個(gè)連接傳遞給上層應(yīng)用。業(yè)務(wù) 第二章 IPTV播放器框架設(shè)計(jì) 第 15頁 層通過調(diào)用內(nèi)核接口層提供的一些列 API,即可實(shí)現(xiàn)與播放器內(nèi)核的交互。接口層只是傳 遞通道,沒有絲毫播放功能。 播放器內(nèi)核:處于后臺,以伺服進(jìn)程的形式,隨時(shí)為上層業(yè)務(wù)提供最基本最核心的音 視頻播控功能。 業(yè)務(wù)層應(yīng)用、內(nèi)核接口庫、播放器內(nèi)核交互序列圖如圖 7所示。 應(yīng)用內(nèi)核接口庫播放器內(nèi)核 1: Init() :根據(jù)信號量判斷播放器是否已啟動, 若未啟動,則啟動之 : ConnectSentPath(),建立與播放器內(nèi)核 的 TCP連接 :新建線程, ConnectRecvPaht(),并 循環(huán)接收該連接上的 socket數(shù)據(jù)。 用于不定時(shí)接收播放器返回的事件通知。 : VPLAYER_CMD_INIT消息 :創(chuàng)建 MediaRenderManager、 : OK或 FAIL 返回值 2: Open(url,flag) : VPLAYER_CMD_OPEN消息 : MediaSourceManager初始化 (調(diào)用 Demux的初始化) : MediaSourceManager根據(jù)不同的 媒體格式,創(chuàng)建不同的 Demux : MediaSourceManager與 MediaRenderManager建立連接 : OK或 FAIL 返回值 : VPLAYER_CMD_PLAY消息 3:Play() : OK或 FAIL : MediaRenderManagerStart() : MediaSourceManagerStart() 圖 7業(yè)務(wù)層應(yīng)用、內(nèi)核接口庫、播放器內(nèi)核交互序列圖 業(yè)務(wù)應(yīng)用層調(diào)用 init()接口時(shí),內(nèi)核接口庫在根據(jù)信號量判斷播放器已經(jīng)啟動的情況 下,與播放器內(nèi)核建立 TCP連接。同時(shí),建立新線程,循環(huán)接收該連接上的 socket數(shù)據(jù),用 于不定時(shí)接收播放器返回的事件通知。然后通過 TCP連接發(fā)送 VPLAYER_CMD_INIT消息 給播放器內(nèi)核,播放器內(nèi)核接收到消息后會執(zhí)行實(shí)際的 init功能,并將執(zhí)行結(jié)果返回給內(nèi)核 接口庫層。內(nèi)核接口庫再將結(jié)果返回給業(yè)務(wù)應(yīng)用層。這樣就完成了一 個(gè)交互序列。 碩士學(xué)位論文 第 16頁 IPTV 播放器支持的技術(shù)特性 基于上面這種播放器框架設(shè)計(jì), IPTV播放器可以支持以下技術(shù)特性: 支持本地播放和網(wǎng)絡(luò)播放 此項(xiàng)目中播放器支持的本地文件格式有: mp avi、 264avi、 264ts、 rm、 rmvb、 asf ( AdvancedStreamingFormat)、 mp3。 播放器除了可以播放本地的視頻節(jié)目外也可以播放 asf直播節(jié)目,實(shí)現(xiàn)播放 asf直播的方 式是:按照播放器提供的 Demux模板,實(shí)現(xiàn) asf網(wǎng) 絡(luò)節(jié)目 UDP包的接收和解析( Demux), 并添加到播放器內(nèi)核中。 支持多播放引擎 “ 播放引擎 ” 其實(shí)就是對視音頻進(jìn)行播放時(shí)完成的一條流水線。即:完成四個(gè)基本步 驟:數(shù)據(jù)源讀取、解復(fù)用、解碼、輸出。一條流水線都是由一個(gè)播放基本功能的組件相連 而構(gòu)成的(類似 DirectShow中的 FitlerGraph),可以形象地將這么一條完整的多媒體處理流 水線稱為一個(gè)播放引擎。在一個(gè)進(jìn)程內(nèi)同時(shí)創(chuàng)建若干個(gè)獨(dú)立啟動、獨(dú)立管理的多媒體處理 流水線,就實(shí)現(xiàn)了多播放引擎功能。一般情況下,創(chuàng)建一個(gè)唯一的引擎,即可滿足視音頻 播放 需要。 一個(gè)解碼器只能被一個(gè)進(jìn)程持有。在一個(gè)進(jìn)程內(nèi)使用多線程機(jī)制,創(chuàng)建若干個(gè)播放引 擎,這幾個(gè)播放引擎可以共享同一解碼器資源。 多播引擎技術(shù),有以下應(yīng)用: 1)同時(shí)播放多個(gè)畫面:每個(gè)播放引擎對應(yīng)一個(gè)畫面,在電腦硬件資源足夠的情況下, 理論上播放器框架可以支持任意多個(gè)播放器引擎。 2)無縫連播:在只有一個(gè)播放引擎的情況下,必須在 Demux模塊內(nèi)進(jìn)行復(fù)雜的處理才 可能實(shí)現(xiàn)無縫連播。如果采用播放引擎技術(shù),只需要在前一個(gè)播放即將結(jié)束是,立即啟動 另一個(gè)播放引擎并使其處于待命狀態(tài),待上一視頻播放完畢,立即啟動下一個(gè)引 擎,即可 實(shí)現(xiàn)無縫連播。 播放器框架為每個(gè)播放引擎賦予一個(gè)全局唯一的識別符,稱之為句柄( HANDLE) . 一個(gè)引擎句柄就是一個(gè)整形數(shù)字。該句柄在通訊控制層的 API接口內(nèi)被當(dāng)做參數(shù),廣泛使 用。媒體服務(wù)模塊 MSP( MediaServiceProvider)根據(jù)引擎句柄很容易識別操控命令應(yīng)該 由那個(gè)引擎執(zhí)行。 根據(jù)文件特定內(nèi)容識別文件類型 不同文件的內(nèi)容格式差異顯著,通過辨識典型的文件內(nèi)容,可以有效的提高文件類型 識別準(zhǔn)確率。 在播放一個(gè)文件時(shí),給播放器一個(gè) url,它會調(diào)用 demux模塊的 CanHandleFile函數(shù)去判 斷這個(gè)文件是不是用這個(gè) demux來解析,如果返回信息表明此 demux模塊不支持該文件,那 么它去下一個(gè) demux中再判斷,如果調(diào)用某個(gè) demux時(shí)返回信息表明其支持該文件,那么就 第二章 IPTV播放器框架設(shè)計(jì) 第 17頁 創(chuàng)建這個(gè) demux去解析文件。如果遍歷完所有的 demux都不支持,那么就說明播放器不支持 此節(jié)目的播放。 demux模塊的 CanHandleFile函數(shù)中會解析文件內(nèi)容去判斷是否支持。每一種文件類型 都有自己的格式。文件內(nèi)容中有某些 數(shù)據(jù)可以標(biāo)志文件的格式,這里以 TS文件( TS文件是 擴(kuò)展名為 .ts的文件,是高清影片格式之一)為例進(jìn)行說明。如果第一個(gè)字節(jié)是 0x47,且每 隔 188個(gè)字節(jié)就又出現(xiàn) 0x47,就可以判定該文件為 TS文件。本文設(shè)計(jì)的播放器通過對文件 內(nèi)容中這些標(biāo)志進(jìn)行遍歷判斷,來提高文件類型判別的準(zhǔn)確性。 對網(wǎng)絡(luò)直播節(jié)目的 demux的 CanHandleFile函數(shù),是根據(jù)文件后綴來判斷的。因?yàn)橹辈? 節(jié)目如果根據(jù)內(nèi)容來判斷,效率太低,所以直播的 demux里就是根據(jù) url中是否有 264ts來判斷。如某節(jié)目的 URL為 : 264ts, 則將其判斷為網(wǎng)絡(luò)直播的 TS節(jié)目。 通過擴(kuò)展名方式進(jìn)行文件類型識別,快速高效,但是以文件內(nèi)容進(jìn)行判別,更加準(zhǔn)確。 便于播放器支持格式的易擴(kuò)展性 Filter之間采用專用的部件、統(tǒng)一的接口進(jìn)行連接,添加新 Filter時(shí)只要遵守已定義好的 接口,就無需對播放器架構(gòu)做改動,便于擴(kuò)展播放器支持的格式。 支持動態(tài)拆卸和組裝 Filter組件作為流數(shù)據(jù)處理的基礎(chǔ)模塊,必須具備足夠的靈活度,可以在播放狀態(tài)下, 動 態(tài)組裝或者拆卸 Filter。創(chuàng)建一個(gè) Filter組件,并將其加入到流數(shù)據(jù)處理流水線的過程, 就是組裝。刪除不再有用的 Filter組件,并釋放相關(guān)資源的過程,就是拆卸。例如,實(shí)現(xiàn) 連播功能時(shí),拆卸掉運(yùn)行結(jié)束的 DemuxFilter組件 ,然后創(chuàng)建并加載下一個(gè) DemuxFilter組件。 使用 MediaBuffer對象進(jìn)行數(shù)據(jù)傳送 MediaBuffer是流媒體數(shù)據(jù)處理流水線上的多媒體數(shù)據(jù)載體。每個(gè) MediaBuffer包含一 段視頻或者音頻數(shù)據(jù),還有必須的控制信息。 Filter組件之間傳遞數(shù)據(jù)時(shí),都以指針的 形式 進(jìn)行,避免了大量的內(nèi)存拷貝,降低了 CPU占用率。 使用緩沖池和隊(duì)列管理數(shù)據(jù) 播放視頻數(shù)據(jù)和音頻數(shù)據(jù)必須按照實(shí)現(xiàn)先后順序逐條播放,并且要求視頻和音頻時(shí)間 對照。這樣的業(yè)務(wù)特征,非常適合采用先進(jìn)先出的 “ 隊(duì)列 ” 結(jié)構(gòu)。將視頻、銀屏、字幕等 多種媒體格式,按照時(shí)間先后組織成多個(gè)隊(duì)列,播放時(shí)從各個(gè)隊(duì)列的頭部獲取時(shí)間戳相近 的數(shù)據(jù),優(yōu)先投遞時(shí)間值較小的視頻或者銀屏數(shù)據(jù),這樣就基本實(shí)現(xiàn)了音視頻數(shù)據(jù)的均勻 交織投遞。 支持 VCR操作之間的自由切換 本地視音頻播放提供的操作有:播放、停止、暫停、快退、快進(jìn)、選時(shí)、 調(diào)節(jié)音量、 切換聲道、靜音等,用戶可在任意兩個(gè)允許的狀態(tài)之間切換。 碩士學(xué)位論文 第 18頁 網(wǎng)絡(luò)視音頻播放提供的操作有:播放、停止、調(diào)節(jié)音量、靜音、切換聲道等,用戶可 在任意兩個(gè)允許的狀態(tài)之間切換。 本章首先介紹播放器的基本原理,依據(jù)該原理,結(jié)合常用的系統(tǒng)框架設(shè)計(jì)思路提出了 IPTV播放器框架的設(shè)計(jì)思路。然后詳細(xì)介紹了 IPTV播放器框架的分層結(jié)構(gòu),并對分層結(jié) 構(gòu)中每一層以及各層間的通訊方式進(jìn)行了闡述。最后給出了基于該框架設(shè)計(jì)的 IPTV播放 器能夠支持 的技術(shù)特性。 第三章 IPTV播放器內(nèi)核設(shè)計(jì)與實(shí)現(xiàn) 第 19頁 第三章 IPTV播放器內(nèi)核設(shè)計(jì)與實(shí)現(xiàn) 在播放器軟件框架結(jié)構(gòu)中,播放器內(nèi)核實(shí)現(xiàn)多媒體文件的播放和控制等具體的功能, 并通過通訊控制層對上層應(yīng)用提供播控功能。本章給出了 IPTV播放器內(nèi)核的設(shè)計(jì)與主要模 塊的實(shí)現(xiàn)。 IPTV 播放器內(nèi)核設(shè)計(jì)思路 開發(fā)多媒體應(yīng)用,必然會面對以下這些挑戰(zhàn): 1)如果快速準(zhǔn)確的處理大量的多媒體數(shù)據(jù); 2)視頻和音頻文件往往獨(dú)立存放,播放時(shí)如何確保二者時(shí)刻同步; 3)多媒體數(shù)據(jù)來源 眾多,有網(wǎng)絡(luò)的、有本地,有直播的、有點(diǎn)播的,如何設(shè)計(jì)簡單 的接口來處理這些復(fù)雜的數(shù)據(jù)源; 4)視頻和音頻文件格式繁多(如: AVI、 MPEG[8]、 MP MOV等等),并且還在不 斷的推陳出新,如何兼容舊的多媒體文件格式,如何支持新的文件格式; 5)在目標(biāo)系統(tǒng)中,如何支持不可預(yù)知的硬件。 微軟公司的 DirectShow系統(tǒng),為解決這些挑戰(zhàn)提供了一種可行的思路。該思路的主旨 是 “ 分而治之 ” ,通過將應(yīng)用程序與數(shù)據(jù)傳輸、硬件區(qū)別、音視頻同步等復(fù)雜過程分割開 來,從而降低創(chuàng)建數(shù)字媒體應(yīng)用程序的復(fù)雜度。圖 8是 DirectShow系統(tǒng)框架圖。 圖
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1