共用方式為


撰寫影片影像範例

[與此頁面相關聯的功能 Windows Media Format 11 SDK是舊版功能。 來源讀取器和接收寫入器已取代它。 來源讀取器和接收寫入器已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用來源讀取器和接收寫入器,而不是Windows 媒體格式 11 SDK。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。

影片影像串流是包含一系列仍在影像的影片。 影像可以在畫面內移動,而且每個影像都可以混合到下一個影像。 視訊影像串流會使用 Windows Media Video 9 Image v2 編解碼器進行編碼。 輸出影片類似于 Windows Media Video 9 編解碼器所建立的影片。

若要建立包含視訊影像串流的設定檔,請從 從編解碼器取得串流設定資訊中所述的視訊編解碼器開始列舉。 搜尋支援WMMEDIASUBTYPE_WVP2子類型的編解碼器。

在寫入器物件上設定設定檔之後,呼叫 IWMWriter::GetInputProps 以取得視訊影像輸入資料流程的媒體屬性。 從媒體屬性物件取得媒體類型,方法是呼叫 IWMMediaProps::GetMediaType,並將子類型變更為 WMMEDIASUBTYPE_VIDEOIMAGE。 您應該將視訊寬度和高度設定為包含您要新增至資料流程之影像所需的最大維度。 然後使用修改的輸入類型呼叫 IWMMediaProps::SetMediaType 。 現在您已準備好開始將範例傳送至寫入器物件。

每個範例都必須以 WMT_VIDEOIMAGE_SAMPLE2 結構開頭。 此外,範例可能包含點陣圖影像。 影像只會附加至第一個顯示畫面的範例。 使用該影像的所有其他畫面只需要 結構中的資訊。 輸入點陣圖必須格式化為 RGB,每個圖元 24 位。

點陣圖檔案會儲存影像資料,讓影像的每個資料列的資料會接受四個位元組的可分割數目。 (這稱為 bitmap.) 這會將每一列視訊的開頭強制到 DWORD 界限,讓複製更有效率。 如果影像資料列無法平均除以四個位元組,則資料列會填補到下一個最高四個位元組的倍數。 當您附加影像資料時,您必須移除每個資料列資料結尾處存在的任何邊框間距。

Windows Media Video 9 Image v2 編解碼器一次維護最多兩個記憶體中的影像。 這些影像稱為先前的影像和目前的影像。 每個影像在 WMT_VIDEOIMAGE_SAMPLE2 結構中都有一組成員,其會決定影像在框架中的呈現方式。 您可以將 WMT_VIDEOIMAGE_SAMPLE2 的 dwControlFlags 成員設定為 WMT_VIDEOIMAGE_SAMPLE_INPUT_FRAME ,以新增映射。 當您將輸入框架傳遞至編解碼器時,該影像會變成目前的影像。 先前範例中目前影像的影像通常會變成先前的影像,而先前範例中先前影像的影像則會被捨棄。 您可以將 bKeepPrevImage 成員設定為 TRUE,將編解碼器設定為保留舊版影像。 在此情況下,會捨棄先前範例中目前影像的影像。

視訊影像畫面的基本組合是由每個影像的兩個因素所決定:感興趣的區域和混合係數。 影像感興趣的區域是由原點、寬度和高度所定義。 相關區域所描述影像的一部分會填滿輸出框架。 如果感興趣的區域大小與輸出框架不同,編解碼器會調整其大小。 影像的混合係數決定兩個影像的混合。 目前和先前影像的混合係數必須總計為 1.0。 例如,如果 fCurrBlendCoef 設定為 0.5 且 fPrevBlendCoef 設定為 0.5,則輸出框架是由兩個影像中感興趣的區域相等混合所組成。

藉由操作影像感興趣的區域,您可以建立移動流覽和縮放效果。 混合係數可讓您在影像之間交叉淡化 () 。 除了這些效果之外,您還可以使用其中一個預先定義的轉換來建立更複雜的畫面。 本檔的影片 影像轉換 一節會說明可用的轉換。 使用轉換時,您必須設定每個畫面。 若要這樣做,最簡單的方式是建立函式,以累加方式變更 WMT_VIDEOIMAGE_SAMPLE2 結構的成員,以取得完整效果。

如需為WMT_VIDEOIMAGE_SAMPLE2設定之值的詳細資訊,請參閱 WMT_VIDEOIMAGE_SAMPLE2

注意 如果您想要在具有視訊影像資料流程的檔案中包含音訊,您必須使用未壓縮的音訊輸入。 若要將視訊影像串流與現有的壓縮音訊串流結合,您必須解壓縮音訊,並以未壓縮的方式傳遞範例。 如果您在撰寫影片影像資料流程時將壓縮的樣本傳遞至寫入器,就會發生錯誤,導致從影片卸載樣本。

此外,沒有音訊資料流程的壓縮視訊影像檔案可以在單一 ASF 封包中包含數個非常小、高度壓縮的視訊畫面,這可能會導致舊版Windows 媒體播放機的播放體驗不佳。 若要避免這個問題,最佳解決方案是將無訊息音訊資料流程插入檔案中,不過這也會增加檔案大小。

視訊影像

撰寫 ASF 檔案