新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 基于Directshow的H.264流媒體播放器設計

        基于Directshow的H.264流媒體播放器設計

        作者: 時間:2011-04-24 來源:網絡 收藏
        4解碼的C++類來實現。

          利用ffmpeg庫進行H.264解碼時,需要自定義兩個關鍵函數:open_net_file()和read_buffer_frame()。其中,open_net_file()函數完成與流媒體服務器的連接,接收指定流媒體文件的流相關信息,并返回類型為AVFormatContext結構體的值。read_buffer_frame()函數從bu-ffer緩沖中讀取一幀數據,并交由庫函數avcodec_decode_video()解碼。

          (4)自定義接口的實現

          將Filter類從自定義接口類派生,并聲明自定義接口的所有接口方法;然后在Filter類的實現文件中實現這些接口法,其實大都是調用應用邏輯控制類的相應函數;最后在函數NonDelegatingQueryInteRFace中暴露我們的自定義接口。

          3.4播放器的設計

          播放器采用DirectsHow應用框架,采取界面、控制邏輯和數據分離的三層程序設計方法。界面類直接從標準的對話框類CDialog派生,在界面類中定義兩個自定義類:數據封裝類和邏輯控制類。界面類表達一種用戶操作邏輯;數據封裝類集中管理各種參數;邏輯控制類具體實現業務應用邏輯。采取Directshow應用框架,不必關心數據如何輸入和輸出,這些問題都由Filter框架負責,只需更多的關注數據處理的算法實現、效率優化等問題。采取界面、控制邏輯和數據分離的設計結構,不僅使程序框架清晰、容易被人理解,而且具有良好的移植性和擴展性。

          播放器基于FilterGraphManager構建包含網絡源Filter和H.264解碼Filter的FilterGraph,即可實現網絡流媒體的播放。界面類實現視頻顯示界面與用戶的操作交互,控制邏輯可以控制視頻的播放、暫停、停止、解碼參數設置等,數據類實現對數據的操作管理。

          4結束語

          本流媒體播放器系統采用了Directshow應用框架和H.264視頻編解碼標準,能很好的實現網絡流媒體視頻的播放,具有結構清晰、良好的可擴展性與可移植性。由于WINCE系統是微軟提供的嵌入式實時操作系統,提供了對Directshow的應用支持,故本系統也可以很好的移植到win-ce的嵌入式應用平臺,實現嵌入式端的流媒體視頻播放。同時,本流媒體播放系統也可很好地移植到視頻點播系統中,因其采用高壓縮比、低碼率的H.264視頻編解碼標準。能有效減少網絡負載、減小帶寬,從而減輕網絡對流媒體傳輸中所存在的丟包、抖動、延時等影響。

        c++相關文章:c++教程


        p2p機相關文章:p2p原理



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 大宁县| 双峰县| 龙海市| 临海市| 威宁| 商丘市| 梧州市| 兴海县| 钦州市| 临江市| 遂川县| 洪雅县| 凯里市| 麻栗坡县| 出国| 四平市| 突泉县| 长葛市| 邵阳市| 南靖县| 交城县| 常熟市| 柘荣县| 布尔津县| 元朗区| 海城市| 榆社县| 云龙县| 六盘水市| 巨野县| 肥乡县| 清丰县| 社会| 奉化市| 合山市| 中超| 海门市| 江达县| 莫力| 秦皇岛市| 卢湾区|