下列是我對DirectShow的簡單介紹:
- DirectShow的目的
多媒體串流的高品質的擷取(capture)和播放(playback)。 - DirectShow播放的支援
- Advanced Systems Format (ASF)
- Motion Picture Experts Group (MPEG)
- Audio-Video Interleaved (AVI)
- MPEG Audio Layer-3 (MP3)
- WAV聲音檔
- DirectShow擷取的支援
- 基於Windows Driver Model (WDM)的類比或數位裝置
- 基於Video for Windows(簡稱VFW)的類比或數位裝置
- DirectShow是基於Component Object Model (COM)元件標準開發而成,換句或說,使用DirectShow必須了解一些COM的觀念。
- DirectShow是設計用C++撰寫開發,在這部分微軟未提供managed API給.NET Framework使用。
- DirectShow在不同的平台上有新的功能,參考What's New in DirectShow
開發DirectShow的注意事項:
- 以前是在DirectX SDK裡面,現在則是在Windows SDK當中,雖然DirectShow是Direct X的一部分,但已經移到Windows SDK裡面了,因為DirectShow已經預載在Windows作業系統當中。
- 標頭檔(Header):Dshow.h,函式庫:Strmiids.lib和Quartz.lib。
- 觀念
- Filter是DirectShow中的元件區塊(本身是COM元件)。
- Filter Graph是由多個Filter串接組成,可以執行特定的工作,一組Filter則稱之為Filter Graph。
- Filter Graph Manager是管理Filter Graph的元件,我們的Application是和Filter Graph Manager元件溝通而達成工作,而不是直接控制Filter Graph和Filter。
- 可以利用GraphEdit.exe應用程式測試DirectShow的Filter串接運作是否正確,檔案可能位於安裝Windows SDK的位置,如C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\graphedt.exe。
最後,Visual C#程式語言是否可以利用DirectShow呢?目前我Google的結果是可以的,使用AForge.NET和DirectShow.NET似乎可行,這還要再進一步研究!待續...
沒有留言:
張貼留言