日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 通信技術 > 通信技術
[導讀]本文簡單介紹了DirectShow技術,研究了利用DirectShow實現(xiàn)視頻采集、壓縮和網絡傳輸技術。

摘要  本文簡單介紹了DirectShow技術,研究了利用DirectShow實現(xiàn)視頻采集、壓縮和網絡傳輸技術。并利用第三方提供的編解碼器實現(xiàn)了MPEG-4視頻數(shù)據(jù)的網絡傳輸系統(tǒng),在該系統(tǒng)中利用RTP協(xié)議進行視頻數(shù)據(jù)傳輸,同時實現(xiàn)了遠端幀率的控制。
關鍵詞 視頻; 采集; 壓縮; DirectShow; MPEG-4,RTP

1 引言
    近年來,隨著國民經濟的發(fā)展,社會各個部門對于視頻監(jiān)視系統(tǒng)的需求越來越多。但目前的很多監(jiān)視系統(tǒng)都跟具體的硬件相關,必須要具體的采集卡的支持才能實現(xiàn)。所以有必要開發(fā)一種具有通用性的視頻監(jiān)視系統(tǒng),用普通的攝像頭就能實現(xiàn)視頻的采集。

    基于DirectShow的開發(fā)能很靈活地控制音視頻的效果,所以選擇DirectShow這種可擴展性好的技術做開發(fā)對以后的應用升級很有幫助。此外,為了實現(xiàn)流媒體傳輸控制的策略,流媒體的傳輸和回放也是應解決的問題之一。由Microsoft提供的DirectShow技術基于組件對象模型技術,支持寬松的格式變化,提供高品質的多媒體流回放。利用它可以在普通微機中實現(xiàn)流媒體的客戶端處理,并可以提高系統(tǒng)的通用性和可擴展性。

    對于視頻數(shù)據(jù)的傳輸,壓縮率是一個必須考慮到的因素。MPEG-4是由ISO和IEC的MPEG組制定的一個關于活動圖像和聲音的編碼國際標準。它在基于內容的交互性、壓縮率、通用訪問能力等方面提供了一系列新的或改進的功能。MPEG-4視頻在提供較好的圖像質量的同時擁有較高的壓縮率,適合于作為傳輸?shù)膱D像壓縮標準。

2  相關技術

2.1 DirectShow技術簡介
     DirectShow是Microsoft為開發(fā)高性能多媒體應用而開發(fā)的底層應用程序接口(API),它是DirectX家族的核心成員之一。DirectShow自身是通過一種系統(tǒng)內置的或程序員開發(fā)的過濾器(Filter)來控制和處理多媒體數(shù)據(jù)的體系結構。該體系結構定義了如何處理和控制過濾器內部及相互之間的多媒體數(shù)據(jù)流。每個過濾器都有輸入或輸出針(Pin), 或兩者都有。

    過濾器(Filter)是DirectShow的基本組成部分,是Filter Graph(過濾器圖)中最小的功能模塊,DirectShow將多媒體數(shù)據(jù)的處理分離成不同的步驟,這些不同的步驟由相應的Filter去處理。這樣我們可以把不同的過濾器搭配在一起達到我們要求的來處理多媒體數(shù)據(jù)。過濾器根據(jù)實現(xiàn)功能的不同大致可分為3類:
(1) 源過濾器(Source Filters)。源過濾器負責得到原始媒體數(shù)據(jù)。這些媒體數(shù)據(jù)的來源包括本地硬盤或網絡上的媒體文件、各種采集卡等。
(2) 轉換過濾器(Transform Filters)。轉換過濾器的任務是處理從其他過濾器中接收的數(shù)據(jù),經過一定的處理后再傳遞給下一個過濾器。編解碼器就是典型的轉換過濾器。
(3) 表現(xiàn)過濾器(Rendering Filters)。表現(xiàn)過濾器對接收到的數(shù)據(jù)進行最后的處理。它做的工作有:把媒體數(shù)據(jù)保存為文件、將數(shù)據(jù)發(fā)送到網絡、顯示視頻、回放音頻等[1]。

    在DirectShow 系統(tǒng)之上是應用程序(Application) 。應用程序要按照程序所要實現(xiàn)的功能建立起相應的Filter Graph ,然后借助于Filter Graph Manager 來控制整個數(shù)據(jù)的處理過程。DirectShow 能在Filter Graph 運行的時候接收到各種事件,并通過消息的方式發(fā)送到應用程序。這樣就實現(xiàn)了應用程序與DirectShow 系統(tǒng)之間的交互。

2.2 RTP/RTCP協(xié)議介紹
    實時傳輸協(xié)議RTP(Realtime Transport Protocol)是針對Internet 上多媒體數(shù)據(jù)流的一個傳輸協(xié)議,1996 年由IETF( Internet 工程任務組) 的AVT小組作為RFC1889 發(fā)布AVT小組后來對該文檔進行了不斷改進,于2003年7月提出了代替RFC1889的RFC3550。RTP充分體現(xiàn)了應用層分幀這一現(xiàn)代通信協(xié)議的設計思想,允許其用戶了解、調整甚至制定連續(xù)媒體的打包方案,該協(xié)議被廣泛用于VoIP、視頻等實時媒體的傳送。RTP 協(xié)議包括RTP 和RTCP(RTP 控制協(xié)議) 兩個關系十分密切的子協(xié)議:
    (1)  RTP協(xié)議-傳輸具有實時特性的數(shù)據(jù);
    (2)RTCP協(xié)議-監(jiān)測QoS 和傳送參與傳輸者的信息。

    RTP(實時傳輸協(xié)議) 通常工作在UDP的上層,從上層接收多媒體信息碼流(如MPEG-4視頻) ,組裝成RTP 數(shù)據(jù)包,然后發(fā)送給下層UDP ,相當于OSI 的會話層,提供同步和排序服務。故RTP 協(xié)議適用于傳送連續(xù)性強的數(shù)據(jù),如視頻、音頻等,并對網絡引起的時延差錯有一定的自適應能力。RTCP 為實時控制協(xié)議,用于管理控制信息,如監(jiān)視網絡的延時和帶寬,一旦所傳輸?shù)亩嗝襟w信息的帶寬發(fā)生變化,接收端則通知發(fā)送端,廣播符號化識別碼和編碼參數(shù),達到控制傳輸質量的目的。此外,如果底層網絡支持多點傳播的話,RTP 還支持使用多點傳播向多個目的端點發(fā)送數(shù)據(jù)。

    RTP協(xié)議具有如下特點[5]:
(1)靈活性
    RTP協(xié)議的數(shù)據(jù)報文和控制報文使用不同的端口,數(shù)據(jù)流和控制流分離,這樣大大地提高了協(xié)議的靈活性,處理也簡單。
(2)支持多播
    如果下層網路支持,可以支持多播。
(3)可擴展性
    RTP協(xié)議通常為一個具體的應用提供服務,通過一個具體的應用進程實現(xiàn),而不作為OSI體系結構中單獨的一層來實現(xiàn),RTP只提供協(xié)議框架,開發(fā)者可以根據(jù)應用的具體要求對協(xié)議進行充分的擴展。

3 關鍵技術的實現(xiàn)

    該系統(tǒng)的發(fā)送端實現(xiàn)思路如下:用USB攝像頭采集數(shù)據(jù),用Divx 5.1.1 Codec 對采集到的數(shù)據(jù)進行MPEG-4的編碼,然后連到一個發(fā)送Filter把編碼后的數(shù)據(jù)發(fā)送出去。其Filter Graph如圖1所示 :

                      圖1   發(fā)送端的Filter Graph
   接收端的實現(xiàn)思路如下:通過一個接收Filter接收發(fā)送端發(fā)送的數(shù)據(jù),然后再用Divx Decoder Filter對接收到的數(shù)據(jù)進行解碼。最后用Video Renderer把解碼后的數(shù)據(jù)播放出來。其Filter Graph如圖2所示:

                      圖2   接收端的Filter Graph
3.1  數(shù)據(jù)采集及編碼的實現(xiàn)
3.1.1 采集Filter Graph的實現(xiàn)

    采集應用的Filter Graph一般比較復雜,而直接使用Filter Graph Manager上的IGraphBuilder接口構建這種Filter Graph,有時候難度又很大。為此,DirectShow特別提供了一個輔助組件Capture Graph Builder,來簡化這種Filter Graph的創(chuàng)建。

    首先是創(chuàng)建Filter Graph Manager 組件,核心代碼如下:
 

3.1.2 加入采集Filter


3.1.3加入MPEG-4編碼器Filter

    這里我們采用Divx 提供的開源編碼Filter。安裝DivX.Pro.v5.1.1后會自動安裝Divx的編碼器Filter和解碼器Filter(注:解碼器Filter在接收端要用到)。在程序中加入Divx的編碼器Filter,實現(xiàn)思想是在Video Compressors目錄下枚舉到名稱為"DivX Pro(tm) 5.1.1 Codec"的Filter項后,把它加入到Filter Graph中即可。

3.2 數(shù)據(jù)的發(fā)送和接收
3.2.1 數(shù)據(jù)的發(fā)送Filter的實現(xiàn)
  
    數(shù)據(jù)的發(fā)送要開發(fā)一個發(fā)送Filter,為了編程上的方便,這里采用程序內Filter的形式來實現(xiàn)。即用類的形式而不是編寫一個成一個后綴為ax的組件注冊后再使用。這里我們定義一個繼承自CBaseFilter的類CFilterMpeg4Sender。這個類必須實現(xiàn)以下功能[3]:

   (1) 在類中定義CFilterMpeg4Sender上的Pin的實例mInputPin。
   (2) 實現(xiàn)繼承自CBaseFilter::GetPin,用于返回Filter上各個Pin的對象指針。
   (3) 實現(xiàn)繼承自CBaseFilter::GetPin,用于返回Filter上各個Pin的數(shù)量。

    定義一個繼承自CRenderedInputPin的類CMpeg4InputPin,用于實現(xiàn)CFilterMpeg4Sender上的輸入pin,發(fā)送Filter通過該輸入pin接收編碼Filter輸出的數(shù)據(jù),然后按一定的規(guī)則發(fā)送。

    這個類必須實現(xiàn)以下功能[2]:
   (1) 重寫方法EndOfStream。
   (2) 實現(xiàn)IPin::BeginFlush和IPin::EndFlush兩個函數(shù)。
   (3) 重寫方法CBasePin::CheckMediaType進行連接時媒體類型的檢查。
   (4) 重寫方法CBasePin:: Receive(),接收Sample并發(fā)送

3.2.2 數(shù)據(jù)的接收Filter的實現(xiàn)
數(shù)據(jù)的接收其實是要編寫一個Source Filter, 這個Source Filter名稱為CFilterMpeg4Receiver,也繼承自CBaseFilter。這跟發(fā)送Filter的實現(xiàn)有些類似,有一點需要注意的是該Filter輸出的MediaType的設置。

     Char  MediaType[]=//媒體數(shù)據(jù)類型,通過在發(fā)送端把媒體類型寫到一個文件中而得到然后通過語句:CFilterMpeg4Receiver::SetupMediaType((char *)MediaType,88)設置輸出數(shù)據(jù)的MediaType。

    CFilterMpeg4Receiver::SetupMediaType再調用CMpeg4OutPin::SetupMediaType()設置、接收到的媒體數(shù)據(jù)的格式,

3.2.3 數(shù)據(jù)的網絡傳輸?shù)膶崿F(xiàn)

 
 
     數(shù)據(jù)的發(fā)送我們采用開源代碼JRTPLIB【6】提供的RTP協(xié)議棧。最新的JRTPLIB對RFC3550的實現(xiàn)進行了封裝,開發(fā)人員只要初步了解RTP協(xié)議就可以開發(fā)出高質量的音視頻傳輸程序。使用JRTPLIB時,只需要通過繼承RTPSession類,再重新以下幾個函數(shù)就可以實現(xiàn)視頻數(shù)據(jù)的接收。


     在網絡帶寬比較低的情況下(如十幾KBps),數(shù)據(jù)丟幀現(xiàn)象比較嚴重,這對于圖像質量有很大的影響。我們采用拆幀(拆成1400個字節(jié))以后再發(fā)送的方法,來降低丟幀率。接收端收到數(shù)據(jù)后,再把屬于同一視頻幀的數(shù)據(jù)再組起來。

    網絡發(fā)送接收程序流程圖如圖3所示:

圖3  網絡發(fā)送接收程序流程圖


    對程序流程圖的說明如下:
(1)發(fā)送端拆幀的算法如下:

   然后把屬于同一視頻幀的數(shù)據(jù)組好,發(fā)送到解碼Filter。
   經過測試(在CDMA1.X網絡下),采用拆幀方法傳輸視頻數(shù)據(jù)比直接發(fā)送丟包率更低,傳輸質量有了很大的提高。

3.3 數(shù)據(jù)解碼及回放的實現(xiàn)
    解碼Filter使用的是Divx提供的開源解碼器,在接收Filter的后面接上該解碼Filter即可,最后接上Renderer Filter就可以把接收到的數(shù)據(jù)回放出來。

3.4 實現(xiàn)幀率控制功能
    通過在采集設備和編碼Filter(DivX Pro(tm) 5.1.1 Codec)之間加入一個幀率控制Filter來實現(xiàn)幀率的控制,該Filter相當于一個視頻幀數(shù)計數(shù)器,每接收到一幀,并不立即把該幀發(fā)給下游的編碼Filter,而是把計數(shù)器的值加1,當計數(shù)器的值達到最大值時才把當前收到的幀發(fā)出去。在接收端發(fā)控制幀率命令給采集端可以很方便的實現(xiàn)幀率的遠端控制。

    程序片斷如下:

    加了幀率控制Filter的發(fā)送端 Filter Graph 如圖4所示:


圖4   實現(xiàn)了幀率控制的Filter Graph 

4 總結

    該系統(tǒng)采用了DirectShow技術實現(xiàn)了MPEG-4視頻數(shù)據(jù)的傳輸,視頻數(shù)據(jù)的傳輸采用了RTP協(xié)議。而且還實現(xiàn)了遠端幀率的控制,該系統(tǒng)可以很方便的移植到未來3G網絡的圖像傳輸系統(tǒng)中。對編解碼器進行研究,采用H.264技術實現(xiàn)編解碼Filter是下一步要完成的工作,當然在傳輸質量(QoS)方面也要深入進行研究。

參考文獻

1  邵林,曹漢強.基于DiectShow的視頻廣播系統(tǒng)設計與實現(xiàn)[J].微型機與應用,2004, 4 :58-60
2  Microsoft DirectX C++ SDK Document [EB/OL],2003
3  陸其明.DiectShow開發(fā)指南[M].北京.清華大學出版社,2004
4  陸其明.DiectShow實務精選[M].北京:科學出版社,2004
5  張明華.《基于RTP的視頻傳輸控制方法的研究》[D].鄭州市:鄭州大學, 2004.3
6  Jori Liesenborgs   JRTPLIB 3.1.0 [EB/OL]

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險積極籌備個人養(yǎng)老金的產品設計和系統(tǒng)開發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產品,推動商業(yè)養(yǎng)老保險、個人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險等產品供給。 搭養(yǎng)老政策東風 ...

關鍵字: 溫度 BSP 東風 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎單元,承載著生存與活動的最基本功能。而對于理想空間的解構意義卻在物理性容器之外,體現(xiàn)出人們對于空間和生活深層關系的思考,同時也塑造著人與空間的新型連接...

關鍵字: 溫度 BSP 智能化 進程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績預告。今年前三季度,公司預計實現(xiàn)營業(yè)收入7.54億元至8.33億元,同比增長60.24%至77.03%;歸母凈利潤預計為1.73億...

關鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經濟和信息化局發(fā)布2022年度第一批北京市市級企業(yè)技術中心創(chuàng)建名單的通知,諾誠健華正式獲得"北京市企業(yè)技術中心"認定。 北京市企業(yè)技...

關鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲及超融合市場研究報告》,報告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于...

關鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團成立60周年的紀念日。趁著首都銀行集團成立60周年與首都銀行(中國)在華深耕經營12年的“大日子”,圍繞作為外資金融機構對在華戰(zhàn)略的構想和業(yè)...

關鍵字: 數(shù)字化 BSP 供應鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團公司上海通運國際物流有限公司(Nipp...

關鍵字: 溫控 精密儀器 半導體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國進出口商品交易會("廣交會")于"云端"開幕。本屆廣交會上高新技術企業(yè)云集,展出的智能產品超過140,...

關鍵字: 中國智造 BSP 手機 CAN

要問機器人公司哪家強,波士頓動力絕對是其中的佼佼者。近來年該公司在機器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開發(fā)的機器人會后空翻,自主爬樓梯等。這不,波士頓動力又發(fā)布了其機器人組團跳男團舞的新視頻,表演的機器人包括...

關鍵字: 機器人 BSP 工業(yè)機器人 現(xiàn)代汽車

南京2022年10月17日 /美通社/ -- 日前《2022第三屆中國高端家電品牌G50峰會》于浙江寧波落幕,來自兩百余名行業(yè)大咖、專家學者共同探討了在形勢依然嚴峻的當下,如何以科技創(chuàng)新、高端化轉型等手段,幫助...

關鍵字: LINK AI BSP 智能家電

通信技術

120763 篇文章

關注

發(fā)布文章

編輯精選

技術子站

關閉