新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 基于DirectShow的MPEG-4視頻傳輸系統的研究與實現

        基于DirectShow的MPEG-4視頻傳輸系統的研究與實現

        作者: 時間:2009-03-24 來源:網絡 收藏

        摘要 本文簡單介紹了技術,了利用采集、壓縮和網絡傳輸技術。并利用第三方提供的數據的網絡,在該系統中利用RTP協議進行數據傳輸,同時了遠端幀率的控制。
        關鍵詞 視頻; 采集; 壓縮; ; ,RTP

        本文引用地址:http://www.104case.com/article/167017.htm

        1 引言
        近年來,隨著國民經濟的發展,社會各個部門對于視頻監視系統的需求越來越多。但目前的很多監視系統都跟具體的硬件相關,必須要具體的采集卡的支持才能實現。所以有必要開發一種具有通用性的視頻監視系統,用普通的攝像頭就能實現視頻的采集。
        DirectShow的開發能很靈活地控制音視頻的效果,所以選擇DirectShow這種可擴展性好的技術做開發對以后的應用升級很有幫助。此外,為了實現流媒體傳輸控制的策略,流媒體的傳輸和回放也是應解決的問題之一。由Microsoft提供的DirectShow技術組件對象模型技術,支持寬松的格式變化,提供高品質的多媒體流回放。利用它可以在普通微機中實現流媒體的客戶端處理,并可以提高系統的通用性和可擴展性。
        對于視頻數據的傳輸,壓縮率是一個必須考慮到的因素。是由ISO和IEC的MPEG組制定的一個關于活動圖像和聲音的編碼國際標準。它在內容的交互性、壓縮率、通用訪問能力等方面提供了一系列新的或改進的功能。MPEG-4視頻在提供較好的圖像質量的同時擁有較高的壓縮率,適合于作為傳輸的圖像壓縮標準。

        2 相關技術

        2.1 DirectShow技術簡介
        DirectShow是Microsoft為開發高性能多媒體應用而開發的底層應用程序接口(API),它是DirectX家族的核心成員之一。DirectShow自身是通過一種系統內置的或程序員開發的過濾器(Filter)來控制和處理多媒體數據的體系結構。該體系結構定義了如何處理和控制過濾器內部及相互之間的多媒體數據流。每個過濾器都有輸入或輸出針(Pin), 或兩者都有。
        過濾器(Filter)是DirectShow的基本組成部分,是Filter Graph(過濾器圖)中最小的功能模塊,DirectShow將多媒體數據的處理分離成不同的步驟,這些不同的步驟由相應的Filter去處理。這樣我們可以把不同的過濾器搭配在一起達到我們要求的來處理多媒體數據。過濾器根據實現功能的不同大致可分為3類:
        (1) 源過濾器(Source Filters)。源過濾器負責得到原始媒體數據。這些媒體數據的來源包括本地硬盤或網絡上的媒體文件、各種采集卡等。
        (2) 轉換過濾器(Transform Filters)。轉換過濾器的任務是處理從其他過濾器中接收的數據,經過一定的處理后再傳遞給下一個過濾器。就是典型的轉換過濾器。
        (3) 表現過濾器(Rendering Filters)。表現過濾器對接收到的數據進行最后的處理。它做的工作有:把媒體數據保存為文件、將數據發送到網絡、顯示視頻、回放音頻等[1]。
        在DirectShow 系統之上是應用程序(Application) 。應用程序要按照程序所要實現的功能建立起相應的Filter Graph ,然后借助于Filter Graph Manager 來控制整個數據的處理過程。DirectShow 能在Filter Graph 運行的時候接收到各種事件,并通過消息的方式發送到應用程序。這樣就實現了應用程序與DirectShow 系統之間的交互。
        2.2 RTP/RTCP協議介紹
        實時傳輸協議RTP(Realtime Transport Protocol)是針對Internet 上多媒體數據流的一個傳輸協議,1996 年由IETF( Internet 工程任務組) 的AVT小組作為RFC1889 發布AVT小組后來對該文檔進行了不斷改進,于2003年7月提出了代替RFC1889的RFC3550。RTP充分體現了應用層分幀這一現代通信協議的設計思想,允許其用戶了解、調整甚至制定連續媒體的打包方案,該協議被廣泛用于VoIP、視頻等實時媒體的傳送。RTP 協議包括RTP 和RTCP(RTP 控制協議) 兩個關系十分密切的子協議:
        (1) RTP協議-傳輸具有實時特性的數據;
        (2)RTCP協議-監測QoS 和傳送參與傳輸者的信息。
        RTP(實時傳輸協議) 通常工作在UDP的上層,從上層接收多媒體信息碼流(如MPEG-4視頻) ,組裝成RTP 數據包,然后發送給下層UDP ,相當于OSI 的會話層,提供同步和排序服務。故RTP 協議適用于傳送連續性強的數據,如視頻、音頻等,并對網絡引起的時延差錯有一定的自適應能力。RTCP 為實時控制協議,用于管理控制信息,如監視網絡的延時和帶寬,一旦所傳輸的多媒體信息的帶寬發生變化,接收端則通知發送端,廣播符號化識別碼和編碼參數,達到控制傳輸質量的目的。此外,如果底層網絡支持多點傳播的話,RTP 還支持使用多點傳播向多個目的端點發送數據。
        RTP協議具有如下特點[5]:
        (1)靈活性
        RTP協議的數據報文和控制報文使用不同的端口,數據流和控制流分離,這樣大大地提高了協議的靈活性,處理也簡單。
        (2)支持多播
        如果下層網路支持,可以支持多播。
        (3)可擴展性
        RTP協議通常為一個具體的應用提供服務,通過一個具體的應用進程實現,而不作為OSI體系結構中單獨的一層來實現,RTP只提供協議框架,開發者可以根據應用的具體要求對協議進行充分的擴展。

        3 關鍵技術的實現

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

        圖1 發送端的Filter Graph


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 台山市| 翁源县| 普陀区| 黄石市| 松阳县| 康保县| 新丰县| 宜川县| 连城县| 百色市| 内江市| 大理市| 青龙| 天峻县| 宁强县| 广元市| 大余县| 信丰县| 东光县| 阜新| 文昌市| 太康县| 绍兴市| 库车县| 纳雍县| 青冈县| 改则县| 静安区| 仪陇县| 永年县| 桂阳县| 宿迁市| 乡城县| 佳木斯市| 南溪县| 灵丘县| 永康市| 射洪县| 镇安县| 德格县| 广元市|