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. |
Tópicos relacionados