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

正文內(nèi)容

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

2025-05-19 10:08本頁面

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

  

【正文】 據(jù) 不 同 的 媒 體 格 式 , 創(chuàng) 建 不 同 的 D e m u x2 . 1 . 3 : M e d i a S o u r c e M a n a g e r 與 M e d i a R e n d e r M a n a g e r 建 立 連 接2 . 2 : O K 或 F A I L返 回 值3 . 1 : V P L A Y E R _ C M D _ P L A Y 消 息3 : P l a y ( )3 . 2 : O K 或 F A I L3 . 1 . 1 : M e d i a R e n d e r M a n a g e r S t a r t ( )3 . 1 . 1 : M e d i a S o u r c e M a n a g e r S t a r t ( ) 圖 7 業(yè)務(wù)層應(yīng)用、內(nèi)核接口庫、播放器內(nèi)核交互序列圖 業(yè)務(wù)應(yīng)用層調(diào)用 init()接口時(shí),內(nèi)核接口庫在根據(jù)信號(hào)量判斷播放器已經(jīng)啟動(dòng)的情況下,與播放器內(nèi)核建立 TCP連接。同時(shí),建立新線程,循環(huán)接收該連接上的 socket數(shù)據(jù) ,用于不定時(shí)接收播放器返回的事件通知。然后通過 TCP連接發(fā)送 VPLAYER_CMD_INIT消息給播放器內(nèi)核,播放器內(nèi)核接收到消息后會(huì)執(zhí)行實(shí)際的 init功能,并將執(zhí)行結(jié)果返回給內(nèi)核第 二 章 IPTV 播放器 框架 設(shè)計(jì) 第 15 頁 接口庫層。內(nèi)核接口庫再將結(jié)果返回給業(yè)務(wù)應(yīng)用層。這樣就完成了一個(gè)交互序列。 IPTV 播放器支持的技術(shù)特性 基于上面這種播放器框架設(shè)計(jì), IPTV播放器可以支持以下技術(shù)特性: 支持本地播放和網(wǎng)絡(luò)播放 此項(xiàng)目中播放器支持的本地文件格式有: mp avi、 264avi、 264ts、 rm、 rmvb、 asf( Advanced Streaming Format)、 mp3。 播放器除了可以播放本地的視頻節(jié)目外也可以播放 asf直播節(jié)目,實(shí)現(xiàn)播放 asf直播的方式是:按照播放器提供的 Demux模板,實(shí)現(xiàn) asf網(wǎng)絡(luò)節(jié)目 UDP包的接收和解析( Demux),并添加到播放器內(nèi)核中。 支持多播放引擎 “播放引擎”其實(shí)就是對(duì)視音頻進(jìn)行播放時(shí)完成的一條流水線。即:完成四個(gè)基本步驟:數(shù)據(jù)源讀取、解復(fù)用、解碼、輸出。一條流水線都是由一個(gè)播放基本功能的組件相連而構(gòu)成的(類似 DirectShow中的 FitlerGraph),可以形象地將這么一條完整的多媒體處理流水線稱 為一個(gè)播放引擎。在一個(gè)進(jìn)程內(nèi)同時(shí)創(chuàng)建若干個(gè)獨(dú)立啟動(dòng)、獨(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è)播放引擎對(duì)應(yīng)一個(gè)畫面,在電腦硬件資源足夠的情況下,理論上播放器框架可以支持任意多個(gè)播放器引擎。 2)無縫連播:在只有一個(gè)播放引擎的情況下,必須在 Demux模塊內(nèi)進(jìn)行復(fù)雜的處理才可 能實(shí)現(xiàn)無縫連播。如果采用播放引擎技術(shù),只需要在前一個(gè)播放即將結(jié)束是,立即啟動(dòng)另一個(gè)播放引擎并使其處于待命狀態(tài),待上一視頻播放完畢,立即啟動(dòng)下一個(gè)引擎,即可實(shí)現(xiàn)無縫連播。 播放器框架為每個(gè)播放引擎賦予一個(gè)全局唯一的識(shí)別符,稱之為句柄( HANDLE) .一個(gè)引擎句柄就是一個(gè)整形數(shù)字。該句柄在通訊控制層的 API接口內(nèi)被當(dāng)做參數(shù),廣泛使用。媒體服務(wù)模塊 MSP( Media Service Provider)根據(jù)引擎句柄很容易識(shí)別操控命令應(yīng)該由那個(gè)引擎執(zhí)行。 根據(jù)文件特定內(nèi)容識(shí)別文件類型 不同文件的內(nèi)容格式差異顯著, 通過辨識(shí)典型的文件內(nèi)容,可以有效的提高文件類型識(shí)別準(zhǔn)確率。 在播放一個(gè)文件時(shí), 給播放器一個(gè) url,它會(huì)調(diào)用 demux模塊的 CanHandleFile函數(shù)去判碩士學(xué)位論文 第 16 頁 斷這個(gè)文件是不是用這個(gè) demux來解析 , 如果返回 信息表明此 demux模塊不支持 該文件 ,那么它去下一個(gè) demux中 再 判斷 , 如果 調(diào)用 某個(gè) demux時(shí) 返回 信息表明其 支持 該文件 ,那么就創(chuàng)建這個(gè) demux去解析文件 。 如果 遍歷完 所有的 demux都不支持,那么就說明播放器不支持此 節(jié)目 的 播放 。 demux模塊的 CanHandleFile函數(shù)中會(huì)解析文件內(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ì)的播放器通過對(duì)文件內(nèi)容中這些標(biāo)志進(jìn)行遍歷判斷,來提高文件類型判別的準(zhǔn)確性。 對(duì)網(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)行文件類型識(shí)別,快速高效,但是以文件內(nèi)容進(jìn)行判別,更加準(zhǔn)確。 便于播放器支持格式的易擴(kuò)展性 Filter之間采用專用的部件、統(tǒng)一的接口進(jìn)行連接,添加新 Filter時(shí)只要遵守已定義好的接口,就無需對(duì)播放器架構(gòu)做改動(dòng),便于擴(kuò)展播放器支持的格式。 支持動(dòng)態(tài)拆卸和組裝 Filter 組件作為流數(shù)據(jù)處理的基礎(chǔ)模塊,必須具備足夠的靈活度,可以在播放狀態(tài)下,動(dòng)態(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 對(duì)象 進(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í)間對(duì)照。這樣的業(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ù)的均勻交織投遞。 第 二 章 IPTV 播放器 框架 設(shè)計(jì) 第 17 頁 支持 VCR 操作之間的自由切換 本地視音頻播放提供的操作有:播放、停止、暫停、快退、快進(jìn)、選時(shí)、調(diào)節(jié)音量、切換聲道、靜音等,用戶可在任意兩個(gè)允許的狀態(tài)之間切換。 網(wǎng)絡(luò)視音頻播放提供的操作有:播放、停止、調(diào)節(jié)音量、靜音、切換聲道等,用戶可在任意兩個(gè)允許的狀態(tài)之間切換。 本章小結(jié) 本章首先介紹播放器的基本原理,依據(jù)該原理,結(jié)合常用的系統(tǒng)框架設(shè)計(jì)思路提出了IPTV 播放器框架的設(shè)計(jì)思路。然后詳細(xì)介紹了 IPTV 播放器框架的分層結(jié)構(gòu) ,并對(duì)分層結(jié)構(gòu)中每一層以及各層間的通訊方式進(jìn)行了闡述。最后給出了基于該框架設(shè)計(jì)的 IPTV 播放器能夠支持的技術(shù)特性。 碩士學(xué)位論文 第 18 頁 第三章 IPTV 播放器內(nèi)核設(shè)計(jì)與實(shí)現(xiàn) 在播放器軟件框架結(jié)構(gòu)中,播放器內(nèi)核實(shí)現(xiàn)多媒體文件的播放和控制等具體的功能,并通過通訊控制層對(duì)上層應(yīng)用提供播控功能。 本章給出了 IPTV播放器內(nèi)核的設(shè)計(jì)與主要模塊的實(shí)現(xiàn)。 IPTV 播放器內(nèi)核設(shè)計(jì)思路 開發(fā)多媒體應(yīng)用,必然會(huì)面對(duì)以下這些挑戰(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)框架圖。 圖 8 DirectShow 系統(tǒng)框架圖 灰色區(qū)域所示即為 DirectShow 系統(tǒng)的核心,其位于應(yīng)用層。它使用一種叫做 Filter Graph 的模型來管理整個(gè)數(shù)據(jù)流及其處理過程(管理者叫做 Filter Graph Manager)。參與數(shù)據(jù)處理的各個(gè)功能模塊均可叫做 Filter(過濾器)。 Filter Graph 是 Filter 的“容器”,而 Filter 是 Filter Graph 中的最小功能模塊。各個(gè) Filter 按照一定的規(guī)則被加入“ 容器”,組成一條“流水線”,協(xié)同工作。 第三章 IPTV 播放器內(nèi)核設(shè)計(jì)與實(shí)現(xiàn) 第 19 頁 按照順序,將數(shù)據(jù)源組件、解復(fù)用組件、解碼組件、渲染輸出組件依次連接起來,就組成了多媒體數(shù)據(jù)處理流水線。 ? 數(shù)據(jù)源組件( ReadFilter):主要負(fù)責(zé)獲取原始數(shù)據(jù)并傳輸給“流水線”上的下一個(gè)環(huán)節(jié)。數(shù)據(jù)源可以是文件、網(wǎng)絡(luò)計(jì)算機(jī)里的 WDM( Win32 驅(qū)動(dòng)程序 模型 )采集卡或 VFW( Video for Windows) 采集卡、數(shù)字?jǐn)z像機(jī)等。圖中給出的是 WDM ? 解復(fù)用組件( DemuxFilter):解析原始數(shù)據(jù),并將其分流。 ? 解碼組件( DecoderFilter):根據(jù)編碼格式,實(shí)現(xiàn)各種解碼算法。 ? 渲染輸出組件( RenderFitler):主要負(fù)責(zé)多媒體數(shù)據(jù)的最終去向,或者送給顯卡、聲卡進(jìn)行多媒體的演示;或者輸出到文件進(jìn)行存儲(chǔ)。 在“流水線”的入口處輸入原始的多媒體文件,流水線的出口處將會(huì)輸出畫面、聲音等。在 DirectShow 系統(tǒng)中,將這么一條流水線稱之為 FilterGraph,由 Filter Graph Manager管理著這條流水線。 微軟 DirectShow 中的 Filter 過 濾器,是利用 COM 組件( Component Object Model 組件對(duì)象模型) [10]技術(shù),實(shí)現(xiàn)的功能獨(dú)立且完整的模塊。 Filter 組件有輸入和輸出。例如,解復(fù)用過濾器( DemuxFilter)的主要作用是讀取來自本地或網(wǎng)絡(luò)的同封裝格式的數(shù)據(jù)源,并解析之。 DemuxFilter 的輸入就是本地或網(wǎng)絡(luò)文件,輸出就是音視頻流數(shù)據(jù)。采用相應(yīng)的DemuxFilter,即可在 FilterGraph 中播放不同的文件。支持某種文件格式的 DemuxFilter 組件開發(fā)完畢之后,其它開發(fā)者只需在恰當(dāng)?shù)牡胤阶?cè)這個(gè)組件,該播 放器即可支持該格式的多媒體文件。 利用 DirectShow 框架,開發(fā)人員得以從數(shù)據(jù)傳輸、同步性、硬件差異等瑣碎且復(fù)雜的工作中解脫出來 [10]。 DirectShow 承擔(dān)了總體框架和底層工作,基于 DirectShow 框架開發(fā)多媒體應(yīng)用顯得簡單高效 [10]。 設(shè)計(jì) IPTV 播放器內(nèi)核時(shí),借鑒了 DirectShow 架構(gòu)的分層和流水線理念,也學(xué)習(xí)了操作系統(tǒng)的微內(nèi)核思想,讓播放器內(nèi)核專注于媒體內(nèi)容相關(guān)的工作 [10]。播放器內(nèi)核只完成音視頻流的播放和控制等核心功能,不再參與讀取數(shù)據(jù)源(無論本地還是網(wǎng)絡(luò)),而在播放器內(nèi)核的外 圍擴(kuò)展若干獨(dú)立于內(nèi)核的數(shù)據(jù)獲取功能模塊。比如:需要從網(wǎng)絡(luò)上獲取數(shù)據(jù)時(shí),只需要開發(fā)出支持 HTTP、 MMS、 RTSP、 P2P 等協(xié)議的相應(yīng)擴(kuò)展模塊掛接到內(nèi)核上即可,無需對(duì)播放器內(nèi)核做任何修改;另外,增加新媒體格式時(shí),按照約定好的格式開發(fā)一個(gè)新的接口,并實(shí)現(xiàn)相應(yīng)的解復(fù)用組件 Demux_ Filter,播放器內(nèi)核加載該組件后,即可支持新增的媒體格式,并不影響播放器框架。 IPTV 播放器內(nèi)核架構(gòu)及各組件功能 按照服務(wù)層級(jí)將多媒體播放器內(nèi)核劃分為多個(gè)模塊 [11],這些模塊又被分為內(nèi)層和外層兩大類。內(nèi)層模塊實(shí)現(xiàn)實(shí)際的播放 工作,外層模塊實(shí)現(xiàn)控制邏輯,前者為厚著提供各項(xiàng)服務(wù)??蓪⑼鈱幽K視為一個(gè)處于外部的大容器,內(nèi)層模塊是處于外層模塊容器之內(nèi)的較小碩士學(xué)位論文 第 20 頁 的容器,外層容器內(nèi)可以有多個(gè)內(nèi)層容器。每個(gè)容器都獨(dú)立實(shí)現(xiàn)各自的功能。圖 9 是多媒體播放器內(nèi)核架構(gòu)示意圖。 圖 9 多媒體播放器內(nèi)核架構(gòu)示意圖 多媒體播放器內(nèi)核包括 Framework、 PlayerKernelManager(播放器內(nèi)核管理模塊)、MSP( MediaServiceProvider)幾個(gè)模塊。 1) Framework Framework 是 由 RenderManager 模塊與 SourceManager 模塊組成的播放器核心。RenderManage
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1