DirectShow 的原理及其應用 DirectShow 的原理及其應用

DirectShow 的原理及其應用

  • 期刊名字:微型電腦應用
  • 文件大?。?61kb
  • 論文作者:鄭鴻,陳青山,張文淵
  • 作者單位:上海交通大學(xué)自動(dòng)化
  • 更新時(shí)間:2020-06-12
  • 下載次數:次
論文簡(jiǎn)介

Microcomputer Applications Vol 17. No 8, 2001開(kāi)發(fā)應用微型電腦應用2001年第17卷第8期Directshow的原理及其應用鄭鴻①陳青山②張文淵③摘要本文介紹了微軟提供的多媒體開(kāi)發(fā)工具因此,用戶(hù)可以以三種方式訪(fǎng)問(wèn) Direct show:COM接口,Direct show的工作原理,并給出了一個(gè)基于 Direct show的網(wǎng)媒體播放機控件或媒體控制接口(MCI),如圖1所示。絡(luò )MPEG-1解碼器的實(shí)例關(guān)鍵詞 Direct Show filter Filter Graph COM應用程序概述ActiveMovie媒體控制接控件隨著(zhù)數字視音頻處理、數字信息存儲技術(shù)的不斷發(fā)展,基過(guò)濾器圖表管理于數字編解碼的多媒體應用已經(jīng)越來(lái)越深入到人們的日常生源過(guò)濾忑鞅換過(guò)濾思遞交過(guò)濾活中。為了向開(kāi)發(fā)人員提供功能更完備的處理軟件,在以前推出 Activemovie和Ⅴ ideo for windows的基礎上, Microsoft謀體源端媒體目的端公司推出了新一代多媒體開(kāi)發(fā)軟件包— Direct show。Direct show主要提供播放本地文件或 Internet服務(wù)器上國1 Directshow的休泉構的多媒體數據,以及從視音頻釆集卡等硬件設備中捕荻多媒體流的功能。它能夠播放多種壓縮格式的視音頻文件(或流)包括MPEG, Quick Time,AVl,WAV以及基于Ⅴ ideo for過(guò)濾器圖表的基本組成Windows和wDM( Windows Driver model)的視音頻捕獲個(gè)過(guò)濾器圖表是由不同類(lèi)型的過(guò)濾器組合而成的。過(guò)Direct show的核心是被稱(chēng)為過(guò)濾器(er)的插件式模濾器是一個(gè)執行特殊任務(wù)的COM對象,例如從磁盤(pán)讀數據塊系統該系統配置在過(guò)濾器圖表( filter graph)中。過(guò)濾器圖大多數過(guò)濾器可類(lèi)成表1中三種類(lèi)型中的一種表管理器( filter graph manager)組件負責檢查這些過(guò)濾表1主要的過(guò)濾器及其功能的連接和控制過(guò)濾器間的數據流動(dòng)。類(lèi)型功能二、 Directshow的體系結構從源端(如磁盤(pán)文件, Internet服務(wù)器,VCR)讀源過(guò)濾器數據,將其引入過(guò)濾器圖表Direct show自身是一種通過(guò)自定義或內置的過(guò)濾器來(lái)控傳換過(guò)濾器獲得、處理、往前傳遞數據制和處理多媒體數據的體系結構。該體系結構定義了如何控制和處理過(guò)濾器內部和相互間的多媒體數據流。每個(gè)過(guò)濾器交過(guò)濾遞交數據:通常被遞交到一個(gè)硬件設備,但也都擁有輸入或輸出針。過(guò)濾器之間通過(guò)過(guò)濾器圖表結構相互可以遞交到任何能夠接受媒體輸入的位置連接起來(lái)。應用程序通過(guò)過(guò)濾器圖表管理器對象裝配過(guò)濾器圖表,并且在其中移動(dòng)數據。默認情況下,過(guò)濾器圖表管理器過(guò)濾器圖表通過(guò)過(guò)濾器來(lái)傳遞多媒體數據。一個(gè)過(guò)濾器將自動(dòng)處理數據流。例如,它在需要時(shí)自動(dòng)插入正確的編解碼往下傳遞媒體數據到下一個(gè)過(guò)濾器。上游過(guò)濾器描述傳遞數器,并且自動(dòng)將轉換過(guò)濾器的輸出針連接到默認的遞交過(guò)濾據的過(guò)濾器,下游的過(guò)濾器描述數據應到達的下一個(gè)過(guò)濾器。器( rendering filter)。用戶(hù)也可以自定義過(guò)濾器而不使用這種差異很重要,因為媒體數據往下流動(dòng),而其它信息可以往Directshow提供的默認連接上傳遞應用程序可以通過(guò)過(guò)濾器圖表管理器所提供一組組件對對過(guò)濾器處理的每一個(gè)流,它至少實(shí)現到一個(gè)針上。針是象模型(COM)接口來(lái)訪(fǎng)問(wèn)過(guò)濾器圖表??梢灾苯诱{用過(guò)濾器中國煤化工表現為過(guò)濾器上的單向數表管理器接口來(lái)控制媒體流,獲得過(guò)濾器事件,或者也可以H據流CNMHG提供與其它針相連并傳送使用媒體播放機控件來(lái)播放媒體文件。數據的按上海交通大學(xué)自動(dòng)化系碩士研究生上海交通大學(xué)自動(dòng)化研究生上海方數擦通大學(xué)自動(dòng)化系研究員上海200Microcomputer Applications Vol 17. No 8, 2001開(kāi)發(fā)應用微型電腦應用2001年第17卷第8期dr.cpp四個(gè)文|輸出針輸入針?lè )N換過(guò)輸出輸入針這器件作為源過(guò)濾器基礎,同時(shí)改寫(xiě) Asyncflt.h中 Cmem Strean類(lèi),在Read方法實(shí)現代碼中,加入從存儲MPEG-1包的內圖2針連接示意圖存區拷貝數據進(jìn)入源過(guò)濾器緩存的代碼輸入針接收數據進(jìn)入過(guò)濾器,輸岀針向其它過(guò)濾器提供3.建立過(guò)濾器圖表管理器數據。源過(guò)濾器為文件中的毎個(gè)數據流提供一個(gè)輸出針。典型根據MPEG-1數據流分解程序,判定網(wǎng)絡(luò )數據包的媒的轉換過(guò)濾器,如壓縮/解壓縮( codec)過(guò)濾器,提供一個(gè)輸入體類(lèi)型是否為指定類(lèi)型。為簡(jiǎn)單起見(jiàn)我們設定 majortype針和一個(gè)輸出針,而音頻輸出過(guò)濾器僅擁有一個(gè)輸入針MEDIATYPE StreaMEDIASUBTYPE為了使過(guò)濾器圖表能夠正常工作,過(guò)濾器必須以正確的 MPEGISystem,當然也可以根據分解程序的結果自動(dòng)設定媒順序相連數據流也必須以正確的次序啟動(dòng)和停止過(guò)濾器圖體類(lèi)型。表管理器負責連接過(guò)濾器和控制媒體流。它能夠搜尋可以遞調用 CoCreateinstance方法創(chuàng )建過(guò)濾器圖表實(shí)例交指定媒體類(lèi)型的過(guò)濾器配置,并且建立與之相應過(guò)濾器圖CoCreateInstance CLSID. FilterGraph, NULL表過(guò)濾器圖表也能被預置在這種情況下過(guò)濾器圖表管理器 CLSCTX INPROC, IID IgraphBuilder,(void**8m不需要搜尋配置當搜尋遞交配置時(shí),過(guò)濾器圖表管理器使用過(guò)濾器映射其中m-pig為 Ifilter Graph型指針,指向生成的過(guò)濾器器,首先讀注冊表決定可用的過(guò)濾器類(lèi)型接著(zhù)過(guò)濾器圖表圖表管理器不斷地試圖連接接受該數據類(lèi)型的過(guò)濾器,直到數據然后調用m-pig的 AddFilter方法,將已生成的源過(guò)濾到達遞交過(guò)濾器每個(gè)過(guò)濾器都注冊有一個(gè)優(yōu)先值在都可以器加入過(guò)濾器圖表中。同時(shí)可以根據需要調用 m-pifg Query處理數據時(shí),優(yōu)先值最高的過(guò)濾器首先被使用Interface方法調用必需的接口,如 igraphBuilder等。每次調用四、基于 Directshow的網(wǎng)絡(luò )MPEG接口時(shí),應調用 Addref方法,增加該接口的引用次數。停止解碼器設計調用該接口時(shí),應調用 Release方法,降低該接囗的引用次數,旦該接口的引用次數降為零,則系統將釋放為引用該接口我們利用 Direct show能夠實(shí)現網(wǎng)絡(luò )視音頻數據實(shí)時(shí)解所創(chuàng )建的所有資源這在網(wǎng)絡(luò )多媒體中,往往是整個(gè)系統的核心組成部分,因4.啟動(dòng)解碼器此設計一個(gè)功能強大而穩定的解碼器是非常重要的關(guān)鍵環(huán)調用的 igraphBuilder的 Render方法,將源過(guò)濾器的輸節。這里給出一個(gè)網(wǎng)絡(luò )MPEG-1解碼器的主要設計步驟,其出針的數據加入過(guò)濾器圖表結構組成如圖3所示m-pigb->Render(m-rdr->Get Pin());結構組成其中m-pigb為 IgraphBuiler型指針,m-rdr為指向源過(guò)濾器的指針然后只要調用Imeol的Run方法就可以啟動(dòng)解“輸出針上“輸入針這要輸出針輸入針器碼器。同時(shí)應該利用 Video window接口設置圖像顯示的窗口句柄,以及圖像大小等,以便荻得理想的顯示效果圖2針連接示意國5.暫?;蛲V菇獯a、獲得解碼信息可以調用Control的 Pause和Stop方法暫停和停止解碼。如果想獲得更多關(guān)于解碼器的解碼信息,可以調用ideo接口。通過(guò)調用該接口的一些方法,如Get TypeInfo, get- Avg Time Per Frame, get- Bit Rate設計步驟iMage等方法,可以分別獲得當前1.設計網(wǎng)絡(luò )接收模塊媒體類(lèi)型、當前幀率、位速率、當前圖像大小、當前圖像拷貝等創(chuàng )建UDP套接字并建立數據接收緩存隊列,用來(lái)存放重要中國煤化工些接口對接碼器進(jìn)行更高數據包級的CNMHG出了一些常用的接囗及其2.設計源過(guò)濾器主要功能源過(guò)濾器負責接收由網(wǎng)絡(luò )接收模塊采集的MPEG-1數(下轉第62頁(yè))據,并將其遞交給MPEG-1分解過(guò)濾器們可勢費搪yc例程(SDK附帶異步讀過(guò)濾器):以(上接第42頁(yè))表2常用的接口及其主要功能碼器。妾口名功能描述五、結束語(yǔ)IfilterGraph過(guò)濾器圖表的抽象描述繼承于 Ifitlter Graph,允許應用程序調用Igraphbuilde本文主要講述了 Direct show的主要組成部分和工作原過(guò)濾器圖表管理器創(chuàng )建過(guò)濾器圖表允許應用程序通過(guò)圖表中的過(guò)濾器控制理,并給出了一個(gè)用 Direct show實(shí)現的網(wǎng)絡(luò )MPEG-1解碼IMediacontrol器,對從事數字監控及基于 Internet/LAN的視音頻處理以及媒體流從事多媒體軟件開(kāi)發(fā)的編程人員有一定的參考價(jià)值Video Window支持視頻遞交過(guò)濾器的視頻窗口特性獲得時(shí)長(cháng)、啟動(dòng)停止時(shí)間、速率、當前位置Imedia Position參老立獻等信息中國煤化工Imedia event支持過(guò)濾器圖表和過(guò)濾器的事件通知CNMHG SDK 6. 0. Microsoft抽象一個(gè)已經(jīng)具有輸入輸出連接的對象I basic video并能對其進(jìn)行動(dòng)態(tài)整合2] Guy Eddon Henry,COM組件編程技術(shù)內幕,北京希望電實(shí)際應用該解碼器的結果表明,它能很好地完成解碼功子出版社,2000.4能,并能對解于數較理想的控制,是一套較成功的軟件解(收稿日期:2001年2月19日

論文截圖
版權:如無(wú)特殊注明,文章轉載自網(wǎng)絡(luò ),侵權請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習使用,務(wù)必24小時(shí)內刪除。
欧美AAAAAA级午夜福利_国产福利写真片视频在线_91香蕉国产观看免费人人_莉莉精品国产免费手机影院