FourCCs de vídeo

Muitos formatos de vídeo têm códigos FOURCC atribuídos a eles. Um código FOURCC é um inteiro sem sinal de 32 bits criado pela concatenação de quatro caracteres ASCII. Por exemplo, o código FOURCC para vídeo YUY2 é 'YUY2'.

Várias macros C/C++ são definidas para declarar valores FOURCC no código-fonte. A macro MAKEFOURCC é definida em Mmsystem.h e a macro FCC é definida em Aviriff.h e em vários outros arquivos de cabeçalho. Você também pode declarar um código FOURCC diretamente como um literal de cadeia de caracteres simplesmente invertendo a ordem dos caracteres. Portanto, as seguintes instruções são equivalentes:

DWORD fccYUY2 = MAKEFOURCC('Y','U','Y','2');
DWORD fccYUY2 = FCC('YUY2');
DWORD fccYUY2 = '2YUY';  // Declares the FOURCC 'YUY2'.

(No último exemplo, a inversão da ordem de bytes é necessária porque o Windows usa uma arquitetura little-endian. 'Y' = 0x59, 'U' = 0x55 e '2' = 0x32, então '2YUY' é 0x32595559.)

Algumas das APIs de Aceleração de Vídeo 2.0 do DirectX usam um valor D3DFORMAT para descrever um formato de vídeo. Um código FOURCC também pode ser usado neste contexto:

D3DFORMAT fmt = (D3DFORMAT)MAKEFOURCC('Y','U','Y','2');
D3DFORMAT fmt = (D3DFORMAT)FCC('YUY2');
D3DFORMAT fmt = D3DFORMAT('2YUY'); // Coerce to D3DFORMAT type.

Constantes FOURCC

A tabela a seguir lista alguns códigos FOURCC comuns.

Valor FOURCC Descrição
'H264' Vídeo H.264.
'I420' Vídeo YUV armazenado no formato planar 4:2:0.
'IYUV' Vídeo YUV armazenado no formato planar 4:2:0.
'M4S2' Vídeo mpeg-4 parte 2.
'MP4S' Microsoft MPEG 4 codec versão 3. Não há mais suporte para esse codec.
'MP4V' Vídeo mpeg-4 parte 2.
'MPG1' Vídeo MPEG-1.
'MSS1' Conteúdo codificado com o codec de tela do Windows Media Video 7.
'MSS2' Conteúdo codificado com o codec de tela do Windows Media Video 9.
'UYVY' Vídeo YUV armazenado no formato 4:2:2. Semelhante ao YUY2, mas com ordenação de dados diferente.
'WMV1' Conteúdo codificado com o codec do Windows Media Video 7.
'WMV2' Conteúdo codificado com o codec do Windows Media Video 8.
'WMV3' Conteúdo codificado com o codec do Windows Media Video 9.
'WMVA' Conteúdo codificado com a versão mais antiga e obsoleta do codec de Perfil Avançado do Windows Media Video 9.
'WMVP' Conteúdo codificado com o codec de imagem do Windows Media Video 9.1.
'WVC1' SMPTE 421M ("VC-1"). Conteúdo codificado com o Perfil Avançado do Windows Media Video 9.
'WVP2' Conteúdo codificado com o codec da Imagem v2 do Windows Media Video 9.1.
'YUY2' Vídeo YUV armazenado no formato 4:2:2.
'YV12' Vídeo YUV armazenado no formato planar 4:2:0 ou 4:1:1. Idêntico a I420/IYUV, exceto que os planos você e V são alternados.
'YVU9' Vídeo YUV armazenado no formato planar 16:1:1.
'YVYU' Vídeo YUV armazenado no formato 4:2:2. Semelhante ao YUY2, mas com ordenação de dados diferente.

 

Tipos de mídia de vídeo

GUIDs de subtipo de vídeo