Video FOURCCs
Vielen Videoformaten sind FOURCC-Codes zugewiesen. Ein FOURCC-Code ist eine 32-Bit-Ganzzahl ohne Vorzeichen, die durch Verkettung von vier ASCII-Zeichen erstellt wird. Der FOURCC-Code für das YUY2-Video ist beispielsweise "YUY2".
Verschiedene C/C++-Makros werden definiert, um FOURCC-Werte im Quellcode zu deklarieren. Das MAKEFOURCC-Makro ist in Mmsystem.h definiert, und das FCC-Makro wird in Aviriff.h und verschiedenen anderen Headerdateien definiert. Sie können einen FOURCC-Code auch direkt als Zeichenfolgenliteral deklarieren, indem Sie einfach die Reihenfolge der Zeichen umkehren. Daher sind die folgenden Anweisungen gleichwertig:
DWORD fccYUY2 = MAKEFOURCC('Y','U','Y','2');
DWORD fccYUY2 = FCC('YUY2');
DWORD fccYUY2 = '2YUY'; // Declares the FOURCC 'YUY2'.
(Im letzten Beispiel ist das Umkehren der Byte reihenfolge erforderlich, da Windows eine Little-Endian-Architektur verwendet. "Y" = 0x59, "U" = 0x55 und "2" = 0x32, sodass "2 UIY" 0x32595559.)
Einige der DirectX Video Acceleration 2.0-APIs verwenden einen D3DFORMAT-Wert, um ein Videoformat zu beschreiben. Ein FOURCC-Code kann auch in diesem Kontext verwendet werden:
D3DFORMAT fmt = (D3DFORMAT)MAKEFOURCC('Y','U','Y','2');
D3DFORMAT fmt = (D3DFORMAT)FCC('YUY2');
D3DFORMAT fmt = D3DFORMAT('2YUY'); // Coerce to D3DFORMAT type.
FOURCC-Konstanten
In der folgenden Tabelle sind einige allgemeine FOURCC-Codes aufgeführt.
| FOURCC-Wert | BESCHREIBUNG |
|---|---|
| 'H264' | H.264-Video. |
| 'I420' | YUV-Video im planaren 4:2:0-Format gespeichert. |
| 'IYUV' | YUV-Video im planaren 4:2:0-Format gespeichert. |
| 'M4S2' | MPEG-4- Teil 2-Video. |
| 'MP4S' | Microsoft MPEG 4 Codec Version 3. Dieser Codec wird nicht mehr unterstützt. |
| 'MP4V' | MPEG-4- Teil 2-Video. |
| 'MPG1' | MPEG-1-Video. |
| 'MSS1' | Inhalt, der mit dem Windows Media Video 7-Bildschirmcodec codiert ist. |
| 'MSS2' | Inhalt, der mit dem Windows Media Video 9-Bildschirmcodec codiert ist. |
| "UYVIG" | YUV-Video im gepackten 4:2:2-Format gespeichert. Ähnlich wie YUY2, aber mit unterschiedlicher Reihenfolge der Daten. |
| 'WMV1' | Inhalt, der mit dem Windows Media Video 7-Codec codiert ist. |
| 'WMV2' | Inhalt, der mit dem Windows Media Video 8-Codec codiert ist. |
| 'WMV3' | Inhalt, der mit dem Windows Media Video 9-Codec codiert ist. |
| WMVA | Inhalt, der mit der älteren, veralteten Version des Windows Media Video 9 Advanced Profile-Codecs codiert ist. |
| 'WMVP' | Inhalt, der mit dem Windows Media Video 9.1-Bildcodec codiert ist. |
| "WVC1" | SMPTE 421M ("VC-1"). Inhalt, der mit dem Windows Media Video 9 Advanced Profile codiert ist. |
| "WVP2" | Inhalt, der mit dem Windows Media Video 9.1 Image v2-Codec codiert ist. |
| "YUY2" | YUV-Video im gepackten 4:2:2-Format gespeichert. |
| 'YV12' | YUV-Video im planaren Format 4:2:0 oder 4:1:1. Identisch mit I420/IYUV, außer dass die Du- und V-Ebenen umgeschaltet sind. |
| 'YVU9' | YUV-Video im planaren 16:1:1-Format gespeichert. |
| 'YVILI' | YUV-Video im gepackten 4:2:2-Format gespeichert. Ähnlich wie YUY2, aber mit unterschiedlicher Reihenfolge der Daten. |