Windows Media Foundation學習筆記1——MF核心概念

來源:互聯網
上載者:User

標籤:mf   media foundation   多媒體架構   dshow   windows   

     該筆記參考書籍《Developing Microsift Media Foundataion Application》,因此有不少是從該書中摘錄的,如有侵權,不勝惶恐!

     MF核心概念:component(組件),這裡的組件類似於directshow的filter,即針對某一特定功能封裝成一個component,該特定功能可以是解碼,編碼,渲染等等,通過把這些component組合,形成pipeline,就可以完成多媒體應用程式所需的各種功能,跟directshow連結filter一樣,保持filter功能的獨立性同時又提供靈活多變的組合功能。其實OpenGL也有pipeline一說,通過一道道工序完成最後螢幕中所想要輸出的圖形映像。


     一個完整的檔案播放pipeline,如所示(從《Developing Microsift Media Foundataion Application》書中複製而來):


小的矩形框,例如“Audio decoder”、“Video decoder”即為component組件,整個的chain鏈路形成一個pipeline,完成檔案播放功能。該鏈路可以切成3個部分:檔案源、資料解碼、渲染,在dshow裡面則分別對應source filter,transform filter,render filter,但在MF裡面有專門的術語,以下一一描述:


     1. MF sources:對應圖中的File source,源頭的意思,用來產生資料以給後面組件處理,這裡的資料可以是來自本地檔案(如),也可以是來自網路。還應該注意的是該File source其實還做了音視頻資料分離的工作,以分別針對後續組件(音頻解碼和視頻解碼)。


     2. Media Foundation transforms (MFTs):  對應圖中的Audio decoder和Video decoder,用來“轉換”(transforms),解碼嘛,很明顯。


     3. MF sinks:對應圖中的Audio render和Video render,sink字面解釋"滲透"、“下沉”,該組件可以用來做最終資料的渲染,也可以用來把資料發送至網路另一端,例如視訊通話中把本地視頻編碼並在MF sinks中打包碼流發送給網路另一端。


     而以上三種類型component的串連,則是基於它們各自的輸入輸出類型,例如假設Video decoder的輸入是h.264碼流,輸出是yuv映像,則它上遊的file source的輸出最起碼能支援h.264碼流輸出,否則這兩個component就串連不成功;同樣video decoder的下遊video render的輸入類型也得是支援yuv映像輸入的。可能以上描述不夠嚴謹,但大致就是這個意思,到具體代碼的時候再詳加分析。


     接下來要描述的是組件之間的資料傳遞,在MF中是以Media Sample來描述傳遞的資料,Media sample中還包括資料的屬性(不僅僅是raw data)。DShow也是用的IMediaSample來傳遞資料,很和諧啊。

     最後描述的是MF的調試工具,乖乖,名字是“topoedit”,騷年,DShow的是“graphedit”!windows sdk裡面還有topoedit源碼,不錯喲,可以研究下。


     談談感受,看完該章感覺和DShow結構模型類似,只是換了些說法,還沒體會到MF的精髓啊!待續。。。

Windows Media Foundation學習筆記1——MF核心概念

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.