影片FOURC
許多視訊格式都已指派FOURCC程式碼。 FOURCC 程式代碼是串連四個 ASCII 字元所建立的 32 位無符號整數。 例如,YUY2 視訊的FOURCC程式碼是 'YUY2'。
定義各種 C/C++巨集,以在原始程式碼中宣告 FOURCC 值。 MAKEFOURCC 巨集是在 Mmsystem.h 中定義,而 FCC 巨集定義於 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 值來描述視訊格式。 四CC 程式代碼也可用於此內容:
D3DFORMAT fmt = (D3DFORMAT)MAKEFOURCC('Y','U','Y','2');
D3DFORMAT fmt = (D3DFORMAT)FCC('YUY2');
D3DFORMAT fmt = D3DFORMAT('2YUY'); // Coerce to D3DFORMAT type.
FOURCC 常數
下表列出一些常見的FOURCC程式碼。
FOURCC 值 | 描述 |
---|---|
'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,但有不同的資料順序。 |
相關主題