Video FOURCCs
Molti formati video hanno codici FOURCC assegnati a loro. Un codice FOURCC è un intero senza segno a 32 bit creato concatenando quattro caratteri ASCII. Ad esempio, il codice FOURCC per il video YUY2 è "YUY2".
Varie macro C/C++ sono definite per dichiarare i valori FOURCC nel codice sorgente. La macro MAKEFOURCC è definita in Mmsystem.h e la macro FCC viene definita in Aviriff.h e vari altri file di intestazione. È anche possibile dichiarare un codice FOURCC direttamente come valore letterale stringa semplicemente ripristinando l'ordine dei caratteri. Pertanto, le istruzioni seguenti sono equivalenti:
DWORD fccYUY2 = MAKEFOURCC('Y','U','Y','2');
DWORD fccYUY2 = FCC('YUY2');
DWORD fccYUY2 = '2YUY'; // Declares the FOURCC 'YUY2'.
Nell'ultimo esempio, è necessario ripristinare l'ordine di byte perché Windows usa un'architettura little-endian. 'Y' = 0x59, 'U' = 0x55 e '2' = 0x32, quindi '2YUY' è 0x32595559.
Alcune delle API DirectX Video Acceleration 2.0 usano un valore D3DFORMAT per descrivere un formato video. Un codice FOURCC può essere usato anche in questo contesto:
D3DFORMAT fmt = (D3DFORMAT)MAKEFOURCC('Y','U','Y','2');
D3DFORMAT fmt = (D3DFORMAT)FCC('YUY2');
D3DFORMAT fmt = D3DFORMAT('2YUY'); // Coerce to D3DFORMAT type.
Costanti FOURCC
La tabella seguente elenca alcuni codici FOURCC comuni.
Valore FOURCC | Descrizione |
---|---|
'H264' | Video H.264. |
'I420' | Video YUV archiviato in formato planar 4:2:0. |
'IYUV' | Video YUV archiviato in formato planar 4:2:0. |
'M4S2' | Video MPEG-4 parte 2. |
'MP4S' | Codec Microsoft MPEG 4 versione 3. Questo codec non è più supportato. |
'MP4V' | Video MPEG-4 parte 2. |
'MPEG1' | Video MPEG-1. |
'MSS1' | Contenuto codificato con il codec dello schermo di Windows Media Video 7. |
'MSS2' | Contenuto codificato con il codec dello schermo di Windows Media Video 9. |
'UYVY' | Video YUV archiviato in formato 4:2:2. Simile a YUY2, ma con ordinamento diverso dei dati. |
'WMV1' | Contenuto codificato con il codec Windows Media Video 7. |
'WMV2' | Contenuto codificato con il codec Windows Media Video 8. |
'WMV3' | Contenuto codificato con il codec Windows Media Video 9. |
'WMVA' | Contenuto codificato con la versione precedente e obsoleta del codec Profilo avanzato di Windows Media Video 9. |
'WMVP' | Contenuto codificato con il codec Immagine di Windows Media Video 9.1. |
'WVC1' | SMPTE 421M ("VC-1"). Contenuto codificato con Il profilo avanzato di Windows Media Video 9. |
'WVP2' | Contenuto codificato con il codec Image v2 di Windows Media Video 9.1. |
'YUY2' | Video YUV archiviato in formato 4:2:2. |
'YV12' | Video YUV archiviato in formato planar 4:2:0 o 4:1:1. Identico a I420/IYUV, ad eccezione del fatto che i piani you e V vengono spostati. |
'YVU9' | Video YUV archiviato in formato planar 16:1:1. |
'YVYU' | Video YUV archiviato in formato 4:2:2. Simile a YUY2, ma con ordinamento diverso dei dati. |
Argomenti correlati