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
TLENcom 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
0significa 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.541para 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.