037 [DirectShow] Video Render VMR-9 的介紹

Post date: 2015/5/5 上午 06:30:00

Windows XP 發表了第一個影像訊號混和播放器 ( Video Mixed Render),

因為使用 DirectDraw 7 控制 graphic card, 所以稱為 VMR-7.

隨著 DirectX 9 的發表, 提供了完整串流播放 與 3D 物件整合的新 Render, 稱之為VMR-9. (使用 Direct3D 9 控制 graphic card) .

現在 Windows Vista 提供了新的 Video Render 整合了 Media Foundation 與 DirectShow filter, 稱之為 EVR (Enhanced Video Render).

不過大家可別誤會了, 並非越後面的軟體表示越好. 相對的越後面發表的軟體就越吃資源! 例如: VMR-9 就比 VMR-7 吃資源. 而因為 EVR 包含了版權控制元件, 所以可能將來有版權的串流, 將無法任意被播放.

所以看什麼樣的需求, 就給什麼樣的菜色,

像我們對系統或程式有潔癖的人, 應該是一個常識吧 ....

這篇文章, 介紹 VMR-9.

VMR 的系統需求 [完整]

  • At least 16MB of video memory if multiple video streams are to be blended together. The actual amount of memory required is dependent on the image size of the video streams and resolution of the display mode being used.
  • 注意:
    • The VMR requires that the system monitor be set for a color depth of at least 16 bits.
    • The VMR cannot be put into a run state if the monitor is set for 256 colors.
      • Also, some video cards cannot perform Direct3D operations when the display is set to 24 bits per pixel.

VMR-9 的基本介紹 [原始內容]

  • VMR-9 架構說明 VMR-9 過濾器的外掛程式元件。
  • 配置呈現器 (Allocator-Presenter) 實作說明如何為 VMR-9 建立自訂的配置呈現器物件。
  • 建立 Direct3D 裝置說明
  • 配置表層 (Allocating Surfaces) 說明
  • 呈現影像說明 3D 轉換程序
  • 設定 VMR-9 與過濾器圖形 (Filter Graph) 說明

有關 VMR-9 元件建立數量的探討 [原始討論串: Can't create more then seven VMR9 renderes]

  • VMR-9 建立數量與顯示卡硬體性能有關, 有些卡甚至只能建立兩個 instances
    • 據 Michel 先生的說法, 使用 VMR-7 就不會遇到這個問題, 甚至可以達到上千個 instances. 另外, Douglas 提到你可以使用另外的顯示介面卡試試看.

VMR-7 vs. VMR-9

  • VMR-7 使用 DirectDraw 7 來控制 graphic card, 而 VMR-9 則使用 Direct3D 9.

資料來源:井民全觀點 (Jing's Perspective)