freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

視頻會議系統(tǒng)本科畢業(yè)設計-資料下載頁

2025-06-28 16:53本頁面
  

【正文】 anced System Format),MPEG(Motion Picture Experts Group),AVI(AudioVideo Interleaved),Mp3(MPEG Audio Layer3)和WAV聲音文件;可以從硬件上捕獲媒體數(shù)據流。可以自動檢測并使用視頻和音頻加速硬件。因此,DirectShow可以充分發(fā)揮媒體的性能提高運行速度,可以簡化媒體播放、媒體間的格式轉換和媒體捕獲等工作。同時,它還具有極大的可擴展性和靈活性,可以由用戶自己創(chuàng)建組件,并將這個組件加入DirectShow結構中以支持新的格式或特殊格式。作為高效的多媒體開發(fā)系統(tǒng),DirectShow兼?zhèn)渑c底層的硬件設備和高層的應用程序打交道的能力。過濾器圖表(Filter Graph)是DirectShow的核心框架,它由一系列的DirectShow的基本部件過濾器(Filter)通過其輸入針 (Input Pin)和輸出針 (Output Pin)有序連接構建而成。應用程序通過過濾器圖表管理器所提供一組組件對象模型 (COM)接口來訪問過濾器圖表。直接調用過濾器圖表管理器接口來控制媒體流,獲得過濾器事件,或者使用媒體播放機控件來播放媒體文件。過濾器是DirectShow的最基本的組成元件,由過濾器圖管理器進行管理。DirectShow對數(shù)據流的處理大致可以分成幾個獨立的過程,每個過程完成不同的工作。事實上用戶的一個應用程序就是幾個不同功能的過濾器合在一起的過濾器圖(Filter Graph)。 DirectShow Filter可以分為以下幾個種類:① 源過濾器(Source Filter)源過濾器是整個過濾器圖(Filter Graph)中處理輸入數(shù)據的過濾器。它從外部設備獲取原始數(shù)據并作簡單處理,再將數(shù)據往下一級過濾器送。視頻采集系統(tǒng)就是利用源濾器從硬件設備采集視頻數(shù)據。② 變換過濾器(Transform Filter)變換過濾器是整個過濾器圖(Filter Graph)的核心,負責數(shù)據格式的轉換。它從上一級過濾器獲取數(shù)據并對它進行處理:把原始數(shù)據流轉換成其它形式的多媒體數(shù)據流。壓縮編碼或解碼。把一個數(shù)據流分解成多個數(shù)據流(Parse),如把一個音頻視頻混合流分解成單獨的音頻流和單獨的視頻流。把多個數(shù)據流組合成一個數(shù)據流等。③ 提交過濾器(Renderer Filter)提交過濾器在過濾器圖里處于最后一級,它的作用就是把經過處理的數(shù)據流提交給外部設備。這里說的外部設備包括文件系統(tǒng)、顯示卡、聲卡、網卡等。過濾器圖表通過過濾器來傳遞多媒體數(shù)據。一個過濾器往下傳遞媒體數(shù)據到下一個過濾器。一個標準的過濾器至少有一個數(shù)據輸入端稱為輸入針 (Input Pin),以及一個數(shù)據輸出端稱為輸出針 (Output Pin)。為執(zhí)行特定的任務,需要把不同的過濾器通過輸入針和輸出針連接起來,這樣,就構成了一個完整的過濾器圖?;贒irectShow的應用程序不需要對過濾器圖中的每一個過濾器進行單獨的處理,可以通過過濾器圖管理器來控制各類過濾器的連接以及多媒體流在過濾器圖中的流向。COM是微軟提出的組件技術標準,它按照組件化程序設計的思想,把復雜的應用程序設計成一些小的、功能單一的組件模塊,各組件可用統(tǒng)一的方式進行交互。DirectShow中大部分API都由基于COM的對象和接口組成。許多 DirectShow API都創(chuàng)建為COM對象的實例,應用程序正是通過訪問這些COM對象的接口來實現(xiàn)用戶所需的各種操作。下面列舉一些重要的COM接口:① I Graph Builder接口,構建過濾器管理的接口,建立和管理一系列的過濾器;② I Media Control接口,控制多媒體流在過濾器圖中的流動,如流的啟動和停止;③ I Media Event接口,捕獲多媒體流回放中的事件;④ I Video Window接口,控制視頻窗口的屬性;⑤ I Media Seeking接口,用于媒體流的定位;⑥ I Base Filter接口,可定義一個具體的過濾器指針;⑦ I Pin接口,管理兩個過濾器間的針腳,從而連接過濾器; 視音頻采集模塊目前有兩種常見的驅動模式的視頻捕獲設備,VFW(Video For Windows)模式和WDM(Windows Driver Mode)模式。發(fā)送端過濾器圖表的主要任務是視音頻的采集并將視音頻數(shù)據寫入UDP發(fā)送端的緩沖區(qū),以及本地的視音頻預覽和回放。在過濾器中,視頻/音頻采集過濾器的任務是選擇系統(tǒng)設備中的視頻音頻輸入設備。視音頻回放過濾器的任務是實時顯示畫面和播放聲音。視頻/音頻壓縮過濾器的任務是把采集到的未經壓縮的視頻/音頻進行壓縮,并對壓縮的參數(shù)進行設置。壓縮的編碼器可以是系統(tǒng)中的設備也可以是自己實現(xiàn)的編碼器。視頻音頻混合過濾器的任務是把視頻和音頻組合成一條視音頻交錯排放的數(shù)據流。視頻音頻混合過濾器的任務是把視頻和音頻組合成一條視音頻交錯排放的數(shù)據流。視音頻抓包過濾器最后把這條視音頻流寫入發(fā)送緩沖區(qū),等待發(fā)送。在視音頻抓包過濾器后接了一個渲染過濾器,這是一個完整的過濾器圖表所必需的,雖然它不對視頻音頻做任何處理。在建立過濾器圖表之前,要進行一些初始化工作,主要是創(chuàng)建過濾器圖表管理器和一些重要的接口,這是用DirectShow編程所必需的。初始化COM庫是進行DirectShow編程所必需的。媒體控制接口的工作是控制過濾器圖表的運行、暫停和停止。視頻窗口接口的任務是設置視頻預覽窗口的參數(shù),如窗口的位置、大小等等;在將g_pGraph和g_pCapture。關聯(lián)之后,就可以往過濾器圖表添加過濾器了。接下來的任務是創(chuàng)建上面過濾器圖表中的過濾器,并通過函數(shù)Add Filter把過濾器加入到過濾器圖表中。過濾器的建立分為兩種情況,一種是要建立的過濾器和設備有關系;另一種是要建立的過濾器和系統(tǒng)設備沒有關系。和系統(tǒng)設備沒關系的過濾器(視音頻混合過濾器、視音頻抓包過濾器)直接用函數(shù)COCreatelnstance創(chuàng)建。實現(xiàn)一個具有基本功能的視頻采集程序可通過以下幾個過程:① 通過調用CoCreatelnstance創(chuàng)建一個過濾器圖表管理器實例。獲得IGraphBuilder接口指針,并把它存儲到pGraph中。再調用CoCreatelnstance建立一個capture graph builder對象實例,獲得ICaptureGraphBuilder2接口指針,將它存儲到pBuilder中。InCaptureGraphBuilder2接口的作用是在將 Capture Filter加入 Filter Graph之后,連接剩下的Filter。兩個COM對象創(chuàng)建好之后,通過調用QueryInterface獲得媒體控制、媒體事件控制、視頻窗口控制三個關鍵接口,并調用SetFilteGraph函數(shù)將filter graph綁定到capture graph,再運用Set Notify window函數(shù)設置響應過濾器鏈路時間的Windows句柄。在句柄函數(shù)中調用IMediaEvent::GetEvent方法用以響應隊列中的事件。② 查找并列舉顯示系統(tǒng)中的視頻捕獲設備,將設備名稱與相應的 Capture Filter綁定。此功能通過編寫一個Find Devices (IBaseFilter**pF)函數(shù)實現(xiàn),該函數(shù)返回一個IBascFilter指針類指針。③ 用pGraph→AddFilter(pSre,“捕獲”)方法將 Capture Filter加入 Filter Graph中,此時一個完整的過濾器圖表已建立,然后調用ICaptureGraphBuilder2::Renderstream方法繼續(xù)完成各個Output Pin的連接,以視頻預覽模式渲染媒體流。④ 通過調用Setup window函數(shù)設定圖像播放的窗口大小和位置。⑤ 最后給界面上的控制按鈕添加相應的pMC→Run( )或pMC→Stop( )消息指令,即可控制視頻預覽的開始和暫停功能。代碼的主要過程如下://創(chuàng)建最基本的組件IGraphBuilder*PGraph。ICaPtureGraphBuilder2*PBuilder2://創(chuàng)建過濾器圖構造器CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTXINPROC,IID_IGraphBuilder,(void**)amp。pGraph);//創(chuàng)建采集圖構造器CoCreatelnstance(CLSID_CaptureGraphBuilder2,NULL,CLSCTXINPROC,IID_ICaptureGraphBuilder2,(void**)amp。pBuilder2);//將其關聯(lián)pBuilder2→Set Filter graph(pGraph);//通過系統(tǒng)設備枚舉來獲得視頻采集設備//創(chuàng)建系統(tǒng)設備枚舉器I Create Dev Enum*p Dev Enum=NULL;CoCreateInstance(CLSID_SystemDeviceEnum,NULL,CLSCTXINPROC,IID_ICreateDevEnum,(void**)amp。pDevEnum);//創(chuàng)建視頻采集設備的枚舉器I Enum Moniker*p Class Enum=NULL;PDevEnum→CreateClassEnumerator(CLSID_VideoInputDevieeCategory,amp。pC1assEnum,0);ULONG uFetched;I Moniker*p Moniker=NULL;I Base Filter*PScr=NULL;//如果枚舉到系統(tǒng)的視頻采集設備if(p Class Enum→Next(1,amp。p Monikeramp。uFetched)==S_0K){//將枚舉所得的視頻源設備與過濾器pScr綁定pMoniker→Bind To object(0,0,ID_Base Filter,(void**)pScr);pMoniker→Release( );}//釋放掉不用的部件pClassEnum→Release( );pDevEnumRelease( );//最后,將選定設備加入到采集圖構造器中 。,以便輸出到網絡接口,同時從網絡接口輸入報文中檢索出接收到控制流。另外,它還完成邏輯幀,順序編號,糾錯與檢錯功能。當呼叫方發(fā)出請求主要是通過MakeCall( )函數(shù)來完成的,h323endpoint::Makecall(const PStringamp。remoteParty,pstringamp。token,void*userData=NULL),它的功能是向一個遠地終端提出呼叫請求,參數(shù)remote Party代表了遠地終端的地址或機器名,完整的格式為[機器名@][IP地址@][端口號],實際上機器名和端口號是可省的,缺省的端口號為1720。Token代表了返回連接的索引號。此函數(shù)在呼叫出現(xiàn)后立即返回,并啟動一個后臺線程。當監(jiān)聽到呼叫請求后,系統(tǒng)自動回調Answer Call Response On Answer Call( )函數(shù)進行握手協(xié)商。建立連接的過程是由被呼叫方發(fā)出的利用Find Connection with Lock函數(shù)找到建立連接的索引號Token,調用Answer Call Now允許接通呼叫,這樣兩個終端之間的連接就建立起來了。如果調用Answer Call Denied,呼叫被切斷,連接中斷。當調用Find Connection with Lock( )函數(shù)后,必須用unlock( )函數(shù)釋放連接,否則,會出現(xiàn)一條被鎖死的連接。在本系統(tǒng)中,當Answer按鈕按下,先使用Find Connection with Lock( )找出連接,然后調用Answer Call允許接通呼叫,最后用H323 Connection::unLock( )釋放連接。H323Connection*connection=m_endpoint. Find Connection With Lock (m_token);if(connection= =NULL) Window( );else{connection→Answering Call(H323connection:Answer Call Now);connection→Unlock( );} :能力交換過程,主從判別過程,邏輯信道信令過程,呼叫釋放過程。① 能力交換過程在端點之間建立會話以前,首先要進行能力交換。能力交換過程使端點了解對方的接收和傳輸能力。由于一個端點只能處理某一種特定格式的媒體,所以在呼叫前必須知道每個端點能支持什么類型。一個端點用“終端能力設置”來指明它的能力,這是一個請求消息。這個消息帶有一個序號和該端點能夠發(fā)送和接收的音頻、視頻格式類型,對發(fā)送和接收格式的指示是分開進行的?!敖K端能力設置應答”消息是終端能力設置消息的應答。這個消息中僅含有與最初收到消息中的序號相匹配的序號。如果接收到請求消息的端點發(fā)現(xiàn)與該請求不同,則它就返回一個終端能力設置拒絕消息,并指明拒絕原因。如果在有效期內還沒有收到響應,則端點就會再發(fā)出一個“終端能力設置釋放”消息,這是一種指示消息,不用給以響應。設置終端音頻能力:Set Capability(0,0,new H323_GSM0610 Capability);Set Capability(0,0,new H323_G723 Capability(H323_G723 Capability::muLaw);Set Capability(0,0,new H323_723 Capability(H323_G723 Capability::ALaw));Set Capability(0,0,new H323_LPC10 Capability(*this));設置終端視頻能力:Set Capability(0,P_MAX_INDEX,new H
點擊復制文檔內容
醫(yī)療健康相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1