Dicionário

O que é uma tag de codec?

Você talvez saiba o que é um codec, mas e a Tag de Codec? Descubra como ler a Tag de Codec de um vídeo e como chegar, a partir dela, ao codec real que foi utilizado.

codec-tag

A Tag de Codec é um código curto armazenado dentro de um arquivo de vídeo ou áudio que indica o codec com o qual seu conteúdo foi empacotado. É a mesma informação que o nome do codec, apenas escrita como um número em vez de uma palavra.

De onde vem a Codec Tag

Você a encontra em arquivos de vídeo e áudio, principalmente na família MP4, MOV e M4A e em arquivos AVI e WAV mais antigos. Ela é escrita automaticamente pelo programa que codificou o arquivo, no momento em que o arquivo foi criado. Ninguém a digita manualmente e ela não pode ser editada de forma útil por conta própria: é um rótulo que precisa corresponder aos dados por trás dele.

Nem todo contêiner usa tags. Arquivos Matroska e WebM identificam seus codecs pelo nome, então nesses arquivos a tag fica vazia e aparece como 0x0000.

Como é o valor

O valor é um número escrito em hexadecimal, uma forma de escrever números que usa os dígitos de 0 a 9 e as letras de a a f. O 0x no início é apenas um marcador indicando isso. Valores típicos são 0x31637661, 0x7634706d e 0x0000.

A maioria desses números é um FOURCC, um código de quatro caracteres. É uma forma de empacotar quatro letras ou dígitos em um único número, introduzida pela Microsoft para rotular fluxos de vídeo e ainda usada pela família MP4 hoje. Você pode convertê-lo de volta manualmente. Divida o número em quatro pares de dígitos hexadecimais e leia cada par como um caractere:

  • 0x31 = 1
  • 0x63 = c
  • 0x76 = v
  • 0x61 = a

Esses quatro caracteres são armazenados de trás para frente, então 0x31637661 é lido como avc1, a tag usada para vídeo H.264 em arquivos MP4. O mesmo truque em 0x7634706d gera v, 4, p, m, que lidos ao contrário formam mp4v. Muitos relatórios poupam essa conta e mostram a forma legível em uma segunda linha ao lado do número.

O áudio dentro de arquivos AVI e WAV é a exceção. Neles, a tag não são quatro caracteres, mas um pequeno número de formato de áudio Microsoft, então você vê valores curtos como 0x0001, que representa áudio PCM sem compactação.

Por que isso é importante

A tag é uma das primeiras coisas que um player ou dispositivo verifica ao abrir um arquivo, por isso ela é um campo de compatibilidade. Os mesmos dados de vídeo podem ser rotulados com tags diferentes dependendo do contêiner em que foram colocados, e um player que reconhece apenas uma delas vai recusar o arquivo mesmo que o decodificador correto esteja instalado. Por isso comparar a Tag de Codec de um arquivo que reproduz com a de um que não reproduz é uma forma rápida de restringir um problema de reprodução, especialmente em TVs, aparelhos de som automotivos e outros dispositivos de função fixa.

Ela também confirma o que você realmente tem. Um arquivo pode ter qualquer nome, mas a tag é escrita pelo codificador e descreve o conteúdo real. Ela não guarda nenhuma informação sobre você, o local ou o dispositivo.