天天看點

DirectShow vfw

四、DirectShow

DirectShow是微軟公司在ActiveMovie和Videofor Windows的基礎上推出的新一代基于COM的流媒體處理的開發包,與DirectX開發包一起釋出。目前,DirectX最新版本為9.0。 DirectShow為多媒體流的捕捉和回放提供了強有力的支援。運用DirectShow,我們可以很友善地從支援WDM驅動模型的采集卡上捕獲資料,并且進行相應的後期處理乃至存儲到檔案中。這樣使在多媒體資料庫管理系統(MDBMS)中多媒體資料的存取變得更加友善。DirectShow是微軟公司提供的一套在Windows平台上進行流媒體處理的開發包,與DirectX開發包一起釋出。

運用DirectShow,我們可以很友善地從支援WDM驅動模型的采集卡上捕獲資料,并且進行相應的後期處理乃至存儲到檔案中。它廣泛地支援各種媒體格式,包括Asf、Mpeg、Avi、Dv、Mp3、Wave等等,使得多媒體資料的回放變得輕而易舉。另外,DirectShow還內建了DirectX 其它部分(比如DirectDraw、DirectSound)的技術,直接支援DVD的播放,視訊的非線性編輯,以及與數字錄影機的資料交換。

五、vfw

VFW(Videofor Windows)是Microsoft推出的關于數字視訊的一個軟體開發包,VFW的核心是AVI檔案标準。AVI(Audio Video Interleave)檔案中的音、視訊資料幀交錯存放。圍繞AVI檔案,VFW推出了一整套完整的視訊采集、壓縮、解壓縮、回放和編輯的應用程式接口(API)。它引進AVI的檔案标準,該标準未規定如何對視訊進行捕獲、壓縮及播放,僅規定視訊和音頻該如何存儲在硬碟上,在AVI檔案中交替存儲視訊幀和與之相比對的音頻資料。VFW給程式員提供.VBX和AVICap視窗類的進階程式設計工具,使程式員能通過發送消息或設定屬性來捕獲、播放和編輯視訊剪輯。現在使用者不必專門安裝VFW了,Windows95本身包括了Videofor Windows1.1,當使用者在安裝Windows時,安裝程式會自動地安裝配置視訊所需的元件,如裝置驅動程式、視訊壓縮程式等。由于AVI檔案格式推出較早且在數字視訊技術中有廣泛的應用,是以VFW仍然有很大的實用價值,而且進一步發展的趨勢。

  VFW主要由以下六個子產品組成:

  (1)AVICAP.DLL:包含了執行視訊捕獲的函數,它給AVI檔案I/O和視訊、音頻裝置驅動程式提供一個進階接口;

  (2)MSVIDEO.DLL:用一套特殊的DrawDib函數來處理螢幕上的視訊操作;

  (3)MCIAVI.DRV:此驅動程式包括對VFW的MCI指令的解釋器

  (4)AVIFILE.DLL:支援由标準多媒體I/O(mmio)函數提供的更高的指令來通路.AVI檔案;

  (5)壓縮管理器(ICM):管理用于視訊壓縮-解壓縮的編解碼器(CODEC);

  (6)音頻壓縮管理器ACM:提供與ICM相似的服務,不同的是它适于波形音頻。

  Visual C++在支援VFW方面提供有vfw32.lib、 msacm32.lib 、winmm.lib等類似的庫。特别是它提供了功能強大、簡單易行、類似于MCIWnd的視窗類AVICap。AVICap為應用程式提供了一個簡單的、基于消息的接口,使之能通路視訊和波形音頻硬體,并能在将視訊流捕獲到硬碟上的過程中進行控制

在VC++開發環境中調用VFW和使用其它開發包沒有什麼不同,隻是需要将VFW32.lib檔案加入工程中,但在開放視訊捕捉與壓縮管理程式時需要其它軟體硬體設定。VFW為AVI檔案提供了豐富的處理函數和宏定義,AVI檔案的特點在于它是典型的資料流檔案,它由視訊流、音頻流、文本流組成。是以對AVI檔案的處理主要是處理檔案流。