欧美一a级免费黄片视频|成人污网站无遮挡|免费三级片黄色网|超碰在线无码动漫|精品成人av一级片|欧美第一鲁丝片|国精品91人妻无码一区二区三区|全国精品一区二区三区四区|久久成人av在线观看|性鲍视频在线观看

  1. 首頁
  2. 學術交流

基于DirectShow的多媒體網絡會議系統(tǒng)



        導讀:本文介紹了DirectShow技術的基本概念,提出了基于DirectShow技術的多媒體網絡會議系統(tǒng),構建了系統(tǒng)框架,對系統(tǒng)的音視頻采集、處理及傳輸做了詳細的介紹。在實驗中取得了良好的效果,具有推廣價值。
        隨著信息技術的迅猛發(fā)展,傳統(tǒng)的會議方式和信息傳輸方式已經不能滿足人們的社會需求,新的多媒體技術應運而生。視頻會議系統(tǒng)把多媒體技術與網絡、使用者融為一個有機整體,三者之間既相互聯(lián)系又相互影響,即需要合理有效地利用網絡資源以滿足視頻會議的需要。在網絡上建立視頻會議系統(tǒng)需要多種技術支持,是比較復雜、完整的多媒體應用系統(tǒng)。本文介紹了一種基于DirectShow的多媒體網絡會議系統(tǒng)。

        一、DirectShow技術簡介

        DirectX軟件開發(fā)包是微軟公司提供的一套在Windows操作平臺上開發(fā)高性能圖形、聲音、輸入、輸出和網絡游戲的編程接口。作為DirectX家族的成員,DirectShow能夠在Windows平臺上處理各種格式的媒體文件的回放,音頻、視頻的采集等高性能的多媒體應用,并提供了相應完整的解決方案。
        DirectShow使用Filter Graph來管理整個數據流的處理過程,各個模塊叫做Filter。按照功能來分,F(xiàn)ilter可以分為三類:源過濾器(Source Filters)、變換過濾器(Transform Filters)和提交過濾器(Rendering Filters),分別用來引入獲取的數據、獲取并處理數據、提交數據給外設。有了這樣的協(xié)同工作,應用程序就按照一定的意圖建立起相應的Filter Graph,通過Filter Graph Manager來控制整個的數據處理過程,就實現(xiàn)了應用程序與DirectShow系統(tǒng)之間的交互。如圖所示。

Directshow系統(tǒng)框圖


        
為提高系統(tǒng)的穩(wěn)定性,Windows操作系統(tǒng)對硬件操作進行了隔離,為這些硬件設計包裝Filter,而包裝Filter內部完成硬件與驅動程序的交互。這樣的設計使得編寫DirectShow應用程序的開發(fā)人員,可以從為支持硬件而需做出的特殊處理中解脫出來。

        二、基于DirectShow的視頻會議系統(tǒng)的設計

        1.系統(tǒng)框圖
        本系統(tǒng)的設計主要分為兩大模塊:第一,發(fā)送模塊,在該模塊中可以實現(xiàn)音視頻的實時捕捉和發(fā)送。第二,接收模塊,在該模塊中可以實現(xiàn)音視頻的接收和播放功能。其系統(tǒng)框圖如下。

系統(tǒng)框圖


        
2.系統(tǒng)關鍵技術的實現(xiàn)
        (1)使用DirectShow實現(xiàn)音視頻的采集播放
        本設計采用的是WDM驅動模型進行視頻捕捉,其支持更多新特性,捕捉卡以一個Filter的形式出現(xiàn)。當視頻捕捉卡正確安裝到系統(tǒng)中后,使用Graph Edit插入Filter,可以在Video Capture Source目錄下看到代表捕捉卡的那個Filter。
        將Capture Filter加入Filter Graph之后,可以使用Render Stream接口繼續(xù)各個Output Pin的連接。要實現(xiàn)視頻捕捉到文件,可以使用Render Stream生成AVI文件。
        音頻與視頻的播放分別使用Windows 操作系統(tǒng)和DirectShow自帶的Rendering Filter,音頻播放使用DirectSound device,視頻的播放采用Video Mixing Renderer 9,它不僅能提供更多的功能,而且更穩(wěn)定、可靠。
        (2)視頻數據的發(fā)送和接收模塊設計
        設計中,視頻數據發(fā)送模塊以組播方式發(fā)送視頻流,視頻數據接收模塊對視頻流進行接收和實時播放顯示。在設計系統(tǒng)時,要求監(jiān)控中心端在接收視頻數據前應向相應的監(jiān)控發(fā)送數據請求,因此建立兩個通道:控制通道和數據通道。視頻流的接收端播放過程如下:
        •輸入發(fā)送端IP地址,請求發(fā)送數據。
        •得到確認消息后,啟動接收播放數據線程,創(chuàng)建用戶界面窗口。
        •建立Winsock2Multicast Socket,根據發(fā)送端傳回的組播地址及端口號加入此IP組播組。
        •建立DirectShow Filter Graph,啟動運行。
        •在DirectShow請求數據時,從Socket中讀取數據(每個IP數據包為64K)送至Buffer,此后視頻流的解碼和播放都由DirectShow來完成。
        在完成總體設計后,我們把前面的設計用程序語言表示出來,可以交付計算機運行。本設計采用的是VC++6.0結合DirectShow進行程序設計的,具有良好的可執(zhí)行性。

        三、結束語

        本系統(tǒng)在Windows系統(tǒng)中,利用VC++6.0和DirectShow為開發(fā)工具,實現(xiàn)了視頻的捕捉、傳送、播放等功能。充分利用了DirectShow工具中提供的各類Filter和接口,使得實現(xiàn)變得簡單易行。


 

參考文獻:

[1]陸其明.DirectShow開發(fā)指南[M].北京: 清華大學出版社, 2003.
[2]劉煒瑋.Visual C++視頻/音頻開發(fā)實用工程案例精選[M].北京人民郵電出版社,2004.
[3]朱志雄,林秀珍,董宏國,靳福.基于DirectShow的音/視頻傳輸系統(tǒng)設計與實現(xiàn)[J].鐵路計算機應用,2009.8.
[4]魏立成,朱桂林.基于DirectShow的視頻采集系統(tǒng)的設計與實現(xiàn)[J].計算機工程,2005, 31(14):187 - 189.
[5]盛健,李曉勇.DirectShow過濾器組件開發(fā)技術及其應用實例[M] .微型機與應用, 2004(1) .


基金項目:
貴州大學創(chuàng)新基金(研理工2009007)

手機體驗


  • 微信公眾號


  • 微信小程序


  • 手機版


  • 微分享