共用方式為


使用視訊畫面

[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngine和媒體基金會的音訊/視訊擷取 取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能在媒體 基礎中使用 MediaPlayerIMFMediaEngine 音訊/視訊擷取,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]

未壓縮的視訊是快速連續播放的一系列影像畫面,通常的播放速率約為每秒30個影格。 由於大部分影片會以壓縮格式輸入 DirectShow 篩選圖形,因此影片串流通常會經過譯碼器進行解壓縮。 許多解碼器會以 YUV 格式輸出數據,並在影片播放之前由硬體進行最終的 RGB 轉換。 如果譯碼器使用 DirectX 影片加速,影片硬體會執行其他工作來譯碼影像。 因此,在數據到達視訊硬體之前,可能不會執行位圖的最終解壓縮。

但是,若要執行許多類型的視訊分析、處理或編輯,通常必須在轉譯或寫入檔案之前,先以某種類型 RGB 或 YUV 格式處理未壓縮的位圖。 這項工作通常是在轉換篩選中根據 CTransformFilter 基類來完成,特別是在 Transform 方法中。 這個方法會接收封裝影片資料的 IMediaSample 物件的指標。 IMediaSample::GetPointer 方法會返回原始資料第一個字節的指標。 對於未壓縮的畫面,此數據由可由濾鏡直接存取或修改的像素所組成。 下列各節提供背景資訊,可協助您以這種方式有效地使用 DIB 數據。

注意

您也可以使用 GDI、GDI+、DirectDraw 或 Direct3D 函式來修改位元,但這些技術超出本文的範圍。

 

本節包含下列主題: