Видео FOURCC

Многим форматам видео назначены коды FOURCC. Код FOURCC — это 32-разрядное целое число без знака, созданное путем объединения четырех символов ASCII. Например, код FOURCC для видео YUY2 — YUY2.

Для объявления значений FOURCC в исходном коде определены различные макросы C/C++. Макрос 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.)

Некоторые API DirectX Video Acceleration 2.0 используют значение 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 Описание
'H264' Видео H.264.
I420 Видео YUV, хранящееся в формате плоский 4:2:0.
'IYUV' Видео YUV, хранящееся в формате плоский 4:2:0.
'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' Видео YUV хранится в упакованном формате 4:2:2. Похоже на 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 версии 2.
'YUY2' Видео YUV хранится в упакованном формате 4:2:2.
'YV12' Видео YUV, хранящееся в формате плоский 4:2:0 или 4:1:1. Идентичен I420/IYUV, за исключением того, что плоскости you и V переключаются.
'YVU9' Видео YUV, хранящееся в плоский формат 16:1:1.
'YVYU' Видео YUV хранится в упакованном формате 4:2:2. Похоже на YUY2, но с другим порядком данных.

 

Типы видеофайла

Идентификаторы GUID для подтипов видео