共用方式為


在組合空間中放置和移動視訊矩形

[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。

當 VMR 混合多個輸入資料流程時,它會將每個資料流程放在標準化矩形內,稱為「組合空間」。在組合空間內,座標 (0.0、0.0) (1.0、1.0) 形成可見的視訊矩形。 此矩形外部的任何座標都已裁剪。

應用程式可以藉由變更該資料流程組合空間中的目的地矩形,透過移動、延展和縮小輸入資料流程中的視訊來執行特殊效果。 如果指定的矩形大小與原生視訊矩形不同,則原生視訊將會壓縮或延展以容納。 目的地矩形是藉由呼叫 IVMRMixerControl::SetOutputRect 方法來指定。

例如,假設串流 0 (對應至釘選 0) 包含主要視訊資料流程,以及對應至釘選 1) 包含次要視訊的串流 1 (。 資料流程 1 可以藉由指定 { -1.0f、0.0f、0.0f、1.0f }的正規化矩形,完全位於螢幕外。 資料流程 1 接著可以在連續呼叫 SetOutputRect時修改矩形的左邊和右側,以移至可見區域:

標籤
時間 矩形
t + 0 { -1.0f, 0.0f, 0.0f, 1.0f }
t + 1 { -0.9f, 0.0f, 0.1f, 1.0f }
t + 2 { -0.8f, 0.0f, 0.2f, 1.0f }
... ...
t + 10 { 0.0f, 0.0f, 1.0f, 1.0f }

 

在組合空間中移動視訊串流

在 t+10 時,串流 1 中的影片完全可見。 在此範例中,資料流程 1 的原生大小是在移動時維護的。 您也可以延展或縮小矩形,以產生有趣的效果。 您也可以藉由指定大於底部的頂端值,或水準鏡像視訊,方法是指定大於右邊的左邊值,以垂直翻轉視訊。

使用 VMR 混合模式