網頁

搜尋此網誌

2010年5月12日 星期三

Introduction to DirectShow

鑒於多媒體的需求日益增大,影像處理越顯重要,微軟(Microsoft)在Windows平台上提供DirectShow做為處理串流多媒體的框架。(好像在寫論文...)詳細內容可以參考MSDN的DirectShow章節,概觀請參閱DirectShow System Overview

下列是我對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擷取的支援
  • 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.libQuartz.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.NETDirectShow.NET似乎可行,這還要再進一步研究!待續...

沒有留言:

張貼留言

熱門文章