Compartilhar via


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 uma literal de cadeia de caracteres simplesmente revertendo a ordem dos caracteres. Assim, as seguintes afirmaçõ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, é necessário reverter a ordem de bytes 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 do DirectX 2.0 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
AV01 Vídeo AOMedia 1.
'AVP' Vídeo de APV (Advanced Professional Video).
'H263' Vídeo H.263.
'H264' Vídeo H.264.
'I420' Vídeo YUV armazenado no formato planar 4:2:0.
'I422' Vídeo YUV armazenado no formato planar 4:2:2.
'I444' Vídeo YUV armazenado no formato planar 4:4:4.
'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. Esse codec não tem mais suporte.
'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.
'theo' Vídeo de Theora.
'UYVY' Vídeo YUV armazenado no formato 4:2:2 empacotado. Semelhante ao YUY2, mas com ordenação de dados diferente.
'VP10' Vídeo VP10.
'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 Windows Media Video 9.1 Image v2.
'YUY2' Vídeo YUV armazenado no formato 4:2:2 empacotado.
'YV12' Vídeo YUV armazenado no formato planar 4:2:0 ou 4:1:1. Idêntico ao I420/IYUV, exceto pelo fato de que os aviões V e você são alternados.
'YVU9' Vídeo YUV armazenado no formato planar 16:1:1.
YVYU Vídeo YUV armazenado no formato 4:2:2 empacotado. Semelhante ao YUY2, mas com ordenação de dados diferente.

 

Tipos de mídias de vídeos

GUIDs de subtipo de vídeo