Dicionário

O que significa o probe score?

O probe score é um número de 0 a 100. Ele mostra quanta confiança o FFmpeg tem sobre o formato de contêiner de um arquivo.

probe-score

Probe score significa quão confiante o FFmpeg está sobre o formato de contêiner de um arquivo. FFmpeg é um framework multimídia que lê e converte arquivos de áudio e vídeo, e seu programa ffprobe informa essa pontuação.

A pontuação é um número inteiro de 0 a 100, e um número mais alto indica uma correspondência mais forte. A pontuação descreve apenas o formato de contêiner, como MKV ou MP4. A pontuação não mede a qualidade do som ou da imagem.

De onde vem o valor

O probe score não é armazenado no seu arquivo. O FFmpeg calcula o número sempre que abre o arquivo.

O FFmpeg tem um pequeno detector para muitos formatos. Cada detector lê o início do arquivo, procura sinais do seu próprio formato e retorna uma pontuação. O formato com a pontuação mais alta vence.

O FFmpeg começa com 2048 bytes de dados. Se nenhum formato tiver pontuação acima de 25, o FFmpeg dobra a quantidade e tenta de novo.

O limite padrão é 1.048.576 bytes, ou cerca de 1 MB. Na última tentativa, qualquer pontuação acima de 0 é suficiente.

Se a entrada informar um tipo MIME que corresponda a um formato, esse formato recebe 30 pontos extras, até 100. Se 2 formatos empatarem com a maior pontuação, o FFmpeg rejeita ambos. Se nenhum formato restar após a última tentativa, o FFmpeg para com o erro Invalid data found when processing input.

Como a extensão de arquivo afeta o score

Um probe score alto não prova que a extensão do arquivo está correta. Por exemplo, o detector Matroska retorna 100 para um tipo de documento conhecido no cabeçalho do arquivo, qualquer que seja o nome do arquivo.

Quando um formato tem detector, uma extensão correspondente geralmente só eleva uma pontuação de 0 para 1. Um formato sem detector depende da extensão, e uma correspondência dá a esse formato uma pontuação de 50. Para conferir uma extensão duvidosa, compare a extensão com o nome do formato que o ffprobe informa ao lado da pontuação.

Como é o valor

Com a opção -show_format, o ffprobe mostra a pontuação em uma linha na seção de formato: probe_score=100. O relatório XML do ffprobe carrega o mesmo número em um atributo chamado probe_score.

Valores típicos

Esses exemplos vêm do código-fonte do FFmpeg 9.0. Outras versões podem gerar outros números, como 51 para o exemplo de MP3 no FFmpeg 8.1.

  • 100: um arquivo MP4 ou MOV com uma seção chamada ftyp ou moov
  • 100: um arquivo Matroska ou WebM com um tipo de documento conhecido
  • 100: um arquivo FLAC com informações de fluxo válidas
  • 99: um arquivo WAV com um cabeçalho RIFF padrão
  • 52: um arquivo MP3 com pelo menos 7 quadros de áudio no início
  • 51: um arquivo AAC em formato ADTS com pelo menos 3 quadros de áudio no início
  • 50: um arquivo em um formato sem detector, identificado apenas pela extensão
  • 0: um arquivo cujo formato foi forçado com a opção -f, então o FFmpeg pulou a detecção

Por que isso é importante para o seu arquivo

Uma pontuação detectada de 25 ou menos é um sinal de alerta, não prova de defeito. O FFmpeg então exibe uma mensagem com as palavras misdetection possible, o que significa que o FFmpeg pode ter escolhido o formato errado.

Uma pontuação próxima de 50 é normal para arquivos MP3 e AAC, porque seus detectores não retornam mais do que 52. Então, uma pontuação de 51 ou 52 não significa que seu arquivo MP3 tenha um problema.

Para uma pontuação detectada de 25 ou menos, a documentação para desenvolvedores do FFmpeg recomenda tentar novamente com mais dados. A opção -formatprobesize define o limite de detecção de formato em bytes. As opções -probesize e -analyzeduration fazem outra coisa: elas limitam os dados que o FFmpeg lê para encontrar detalhes dos fluxos.