在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

      EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于Directshow的H.264流媒體播放器設(shè)計(jì)

      基于Directshow的H.264流媒體播放器設(shè)計(jì)

      作者: 時(shí)間:2011-03-04 來(lái)源:網(wǎng)絡(luò) 收藏

      播放本地基于H.264編碼的AVI文件的Filter Graph如圖1。只需將本地File Source Filter替換為網(wǎng)絡(luò)源Filter,將CoreAVC Video De-coder替換為h.264解碼Filter,即可實(shí)現(xiàn)網(wǎng)絡(luò)H.264視頻

      本文引用地址:http://www.biyoush.com/article/166218.htm

      a.JPG

      3 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
      3.1 Filter設(shè)計(jì)流程
      Filter的編碼實(shí)現(xiàn)包括Filter的注冊(cè)信息、Filter上的框架函數(shù)實(shí)現(xiàn)、邏輯控制類(lèi)實(shí)現(xiàn)、自定義接口實(shí)現(xiàn)、屬性頁(yè)實(shí)現(xiàn)、產(chǎn)權(quán)保護(hù)等。
      首先,要對(duì)Filter所要完成的功能和它在Filter Graph中的位置進(jìn)行分析,以確定filter模型,選擇一個(gè)合適的基類(lèi);然后,再定義輸入輸出PIN以及自定義接口,注冊(cè)Filter信息;最后實(shí)現(xiàn)基類(lèi)的全部純虛函數(shù)和自定義接口函數(shù),并重寫(xiě)基類(lèi)的相關(guān)函數(shù)以定制filter功能。
      3.2 網(wǎng)絡(luò)源Filter的設(shè)計(jì)
      源Filter主要功能是接收服務(wù)器發(fā)來(lái)的流媒體數(shù)據(jù),并提供給Filter Graph中其它Filter使用。
      由于directshow自帶的AVI splitter工作于拉模式,故該源Filter也工作于拉模式。
      本源Filter采用雙緩沖循環(huán)隊(duì)列技術(shù)來(lái)實(shí)現(xiàn)數(shù)據(jù)的接收和向下一級(jí)Filter傳遞數(shù)據(jù)。采用該技術(shù)有如下理由:
      (1)在Source Filter與SpliRer連接的過(guò)程中,會(huì)從Source Filter中讀取一部分?jǐn)?shù)據(jù),以獲得數(shù)據(jù)的格式描述,否則Filter Graph無(wú)法完成連接。源Filter與Splitter Filter進(jìn)行連接前,應(yīng)啟動(dòng)一個(gè)等待線程,當(dāng)Source Filter的數(shù)據(jù)緩存預(yù)先接收到足夠的數(shù)據(jù)后,再構(gòu)建完整的Filter Graph。
      (2)當(dāng)完整的Filter Graph構(gòu)建完成,并且處于運(yùn)行狀態(tài)后,Source Filter必須動(dòng)態(tài)地接收數(shù)據(jù),并持續(xù)地把新數(shù)據(jù)提供給Splitter Filter,雙緩沖循環(huán)隊(duì)列既充分利用內(nèi)存空間,又能為Splitter Filter提供穩(wěn)定的數(shù)據(jù)源。
      (3)緩沖隊(duì)列可以穩(wěn)定碼率,有效減小網(wǎng)絡(luò)延時(shí)、阻塞和抖動(dòng)的影響。
      源Filter的工作過(guò)程如下:建立一個(gè)循環(huán)緩沖隊(duì)列,隊(duì)列尾指針用于緩沖從網(wǎng)絡(luò)接收的數(shù)據(jù),隊(duì)列頭指針供Splitter讀取數(shù)據(jù),進(jìn)行音視頻分離,并傳給下一級(jí)Decoder處理;當(dāng)Socket接收到網(wǎng)絡(luò)數(shù)據(jù)后,將數(shù)據(jù)插入隊(duì)列尾部,并使尾指針后移;當(dāng)Splitter需要讀取數(shù)據(jù)時(shí),從隊(duì)列頭讀取數(shù)據(jù),并使頭指針后移。
      流媒體傳輸采用客戶(hù)端/服務(wù)器的架構(gòu),服務(wù)器與客戶(hù)端之間還有一個(gè)Socket通信協(xié)議問(wèn)題,由于流媒體是連續(xù)的,它的同步點(diǎn)不能隨意選擇,因此,為了傳送流媒體數(shù)據(jù),必須使用面向連接的可靠的傳輸協(xié)議(TCP)??蛻?hù)端與服務(wù)器端的控制與反饋消息,則可以使用(UDP)來(lái)傳輸。服務(wù)器端首先創(chuàng)建一個(gè)偵聽(tīng)Socket,偵聽(tīng)來(lái)自客戶(hù)端的連接請(qǐng)求。一旦偵聽(tīng)到客戶(hù)端的請(qǐng)求,服務(wù)器端就創(chuàng)建一個(gè)用于數(shù)據(jù)傳送的Socket,并綁定到請(qǐng)求連接的客戶(hù)端,此時(shí),服務(wù)器處于數(shù)據(jù)傳送的就緒狀態(tài)。當(dāng)客戶(hù)端發(fā)出命令,服務(wù)器再根據(jù)命令的類(lèi)型執(zhí)行相應(yīng)的操作,如數(shù)據(jù)發(fā)送、停止、斷開(kāi)連接等。



      關(guān)鍵詞: 播放器

      評(píng)論


      相關(guān)推薦

      技術(shù)專(zhuān)區(qū)

      關(guān)閉