Share via


影片 FOURC

許多視訊格式都指派了 FOURCC 代碼。 FOURCC 程式碼是串連四個 ASCII 字元所建立的 32 位不帶正負號的整數。 例如,YUY2 影片的 FOURCC 程式碼是 'YUY2'。

已定義各種 C/C++ 宏,以在原始程式碼中宣告 FOURCC 值。 MAKEFOURCC宏是在 Mmsystem.h 中定義,而在 Aviriff.h 和各種其他標頭檔中定義則表示其為一般。 您也可以直接將 FOURCC 程式碼宣告為字串常值,只要反轉字元的順序即可。 因此,下列語句相等:

DWORD fccYUY2 = MAKEFOURCC('Y','U','Y','2');
DWORD fccYUY2 = FCC('YUY2');
DWORD fccYUY2 = '2YUY';  // Declares the FOURCC 'YUY2'.

(在最後一個範例中,需要反轉位元組順序,因為 Windows 使用小到小的架構。'Y' = 0x59、'U' = 0x55,而 '2' = 0x32,因此 '2YUY' 0x32595559.)

部分 DirectX 影片加速 2.0 API 使用 D3DFORMAT 值來描述視訊格式。 FOURCC 程式碼也可用於此內容:

D3DFORMAT fmt = (D3DFORMAT)MAKEFOURCC('Y','U','Y','2');
D3DFORMAT fmt = (D3DFORMAT)FCC('YUY2');
D3DFORMAT fmt = D3DFORMAT('2YUY'); // Coerce to D3DFORMAT type.

FOURCC 常數

下表列出一些常見的 FOURCC 程式碼。

FOURCC 值 Description
'H264' H.264 影片。
'I420' 以平面 4:2:0 格式儲存的 YUV 視訊。
'IYUV' 以平面 4:2:0 格式儲存的 YUV 視訊。
'M4S2' MPEG-4 第 2 部分影片。
'MP4S' Microsoft MPEG 4 編解碼器第 3 版。 不再支援此編解碼器。
'MP4V' MPEG-4 第 2 部分影片。
'MPG1' MPEG-1 視訊。
'MSS1' 使用 Windows Media Video 7 螢幕編解碼器編碼的內容。
'MSS2' 使用 Windows Media Video 9 螢幕編解碼器編碼的內容。
'UYVY' 以 4:2:2 格式儲存的 YUV 視訊。 類似于 YUY2,但有不同的資料順序。
'WMV1' 使用 Windows Media Video 7 編解碼器編碼的內容。
'WMV2' 使用 Windows Media Video 8 編解碼器編碼的內容。
'WMV3' 使用 Windows Media Video 9 編解碼器編碼的內容。
'WMVA' 使用舊版 Windows Media Video 9 進階設定檔編解碼器編碼的內容。
'WMVP' 使用 Windows Media Video 9.1 影像編解碼器編碼的內容。
'WVC1' SMPTE 421M (「VC-1」) 。 使用 Windows Media Video 9 進階設定檔編碼的內容。
'WVP2' 使用 Windows Media Video 9.1 Image v2 編解碼器編碼的內容。
'YUY2' 以 4:2:2 格式儲存的 YUV 視訊。
'YV12' 以平面 4:2:0 或 4:1:1 格式儲存的 YUV 視訊。 與 I420/IYUV 相同,但您和 V 平面已切換。
'YVU9' 以平面 16:1:1 格式儲存的 YUV 視訊。
'YVYU' 以 4:2:2 格式儲存的 YUV 視訊。 類似于 YUY2,但有不同的資料順序。

 

視訊媒體類型

影片子類型 GUID