Видео 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, но с другим порядком данных. |
Связанные темы