影片 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,但有不同的資料順序。 |
相關主題