Dicionário

O que é duração?

Duração é o tempo total de reprodução de um arquivo de áudio ou vídeo. Veja como os arquivos armazenam esse valor e por que 2 programas podem mostrar números diferentes.

duration

Duração é o tempo que algo leva para acontecer. Em um arquivo de mídia, o que é duração significa o tempo total de execução. A duração de um vídeo mostra quanto tempo o vídeo toca do início ao fim, e a duração de um áudio mostra o mesmo para uma música ou gravação.

Você geralmente vê esse número no seu player de mídia como o tempo total. Nos metadados, essa mesma informação aparece em um campo chamado Duration.

Quais arquivos o carregam

A duração pertence a arquivos que tocam ao longo do tempo, ou seja, arquivos de áudio e vídeo. Fotos estáticas e documentos de texto normalmente não têm um campo de duração.

Imagens animadas são um caso especial. Um arquivo GIF armazena um atraso para cada quadro, mas não o tempo total. Mesmo assim, o ExifTool informa uma Duration para uma passagem da animação.

De onde vem o valor

Alguns formatos armazenam o tempo diretamente. Outros formatos armazenam valores que o software usa para calcular esse tempo.

  • MP4 e MOV: o cabeçalho do filme armazena uma escala de tempo e uma duração. A escala de tempo é o número de unidades de tempo por segundo, e a duração conta essas unidades.
  • MKV e WebM: as informações do segmento podem conter um elemento opcional Duration, contado em tique-taques (ticks). Por padrão, um tick é um milissegundo.
  • MP3: a tag ID3 pode conter um quadro TLEN com o tempo em milissegundos. O ExifTool calcula o tempo a partir de outros valores, como o tamanho do arquivo e a taxa de bits.
  • FLAC: o arquivo armazena o número total de amostras e a taxa de amostragem. O software calcula o tempo a partir desses 2 valores, e um total de 0 significa que o número é desconhecido.
  • WAV: o ExifTool calcula o tempo a partir da média de bytes por segundo e do tamanho do arquivo.

Como são os valores

O mesmo tempo pode aparecer de formas diferentes, dependendo do programa que lê o arquivo:

  • 00:05:15: horas, minutos e segundos. Este arquivo dura 5 minutos e 15 segundos.
  • 15.23 s: segundos, com a unidade mostrada.
  • 200.541000: um número sem unidade. O programa ffprobe, do projeto FFmpeg, imprime a duração desse jeito, com 6 dígitos depois da vírgula. O número significa 200,541 segundos, cerca de 3 minutos e 21 segundos.
  • N/A: no seu formato de saída padrão, o ffprobe imprime isso quando a duração está ausente. Nos formatos de saída JSON e XML, a duração simplesmente não aparece.

Um número sem unidade nem sempre está em segundos. O quadro TLEN conta milissegundos, e o valor duration_ts no ffprobe conta unidades da base de tempo do fluxo. Verifique qual campo forneceu o número.

Por que os programas podem mostrar durações diferentes

Programas diferentes podem mostrar durações diferentes para o mesmo arquivo, e nenhum deles precisa estar errado. Aqui estão 4 motivos:

  • Arredondamento: um player que mostra apenas segundos inteiros arredonda 200.541 para cima ou para baixo.
  • Trilhas separadas: a imagem e o som têm trilhas separadas, e cada trilha tem sua própria duração. Em um arquivo MOV, a duração do filme corresponde à trilha mais longa.
  • Tempos de início: cada fluxo pode ter seu próprio tempo de início. O FFmpeg pode medir do início mais cedo até o fim mais tarde, então um início tardio pode deixar o total maior.
  • Estimativas: um arquivo pode ter uma taxa de bits, mas nenhuma duração. O FFmpeg então estima a duração a partir da taxa de bits e do tamanho do arquivo e avisa que o resultado pode não ser preciso.

Por que isso é importante

A duração permite que você verifique um arquivo sem precisar tocá-lo. Se você espera um clipe de 5 minutos e 15 segundos e vê 15.23 s, o arquivo pode não ser o que você esperava.

A duração também se conecta a outros valores. O FFmpeg pode calcular a taxa de bits geral a partir do tamanho do arquivo e da duração.