Словарь

Probe score что это значит?

Показатель probe score - это число от 0 до 100. Оно показывает, насколько FFmpeg уверена в формате контейнера файла.

probe-score

Probe score показывает, насколько FFmpeg уверен в контейнерном формате файла. FFmpeg - это мультимедийный фреймворк для чтения и конвертации аудио- и видеофайлов, а его программа ffprobe выводит это значение.

Это целое число от 0 до 100, и чем оно выше, тем сильнее совпадение. Оно описывает только контейнерный формат, например MKV или MP4. Оно не измеряет качество звука или изображения.

Откуда берется значение

Значение probe score не записывается в ваш файл. FFmpeg вычисляет его каждый раз при открытии файла.

В FFmpeg есть небольшой детектор для многих форматов. Каждый детектор читает начало файла, ищет признаки своего формата и возвращает значение score. Формат с наибольшим значением выигрывает.

FFmpeg начинает с 2048 байт данных. Если ни один формат не получает значение больше 25, FFmpeg удваивает объем и пробует снова.

Лимит по умолчанию - 1 048 576 байт, то есть около 1 МБ. В последней попытке достаточно любого значения больше 0.

Если входные данные сообщают тип MIME, который соответствует какому-то формату, этот формат получает дополнительно 30 баллов, но не выше 100. Если 2 формата набирают одинаково высокий результат, FFmpeg отклоняет оба. Если после последней попытки не остается ни одного формата, FFmpeg останавливается с ошибкой Invalid data found when processing input.

Как расширение файла влияет на показатель

Высокий probe score не доказывает, что расширение файла указано верно. Например, детектор Matroska возвращает 100 при известном типе документа в заголовке файла, независимо от его имени.

Когда у формата есть детектор, подходящее расширение обычно поднимает значение только с 0 до 1. Формат без детектора зависит от расширения, и совпадение дает такому формату значение 50. Чтобы проверить сомнительное расширение, сравните его с именем формата, которое ffprobe показывает рядом со значением score.

Как выглядит это значение

С опцией -show_format ffprobe выводит значение score отдельной строкой в разделе формата: probe_score=100. В XML-отчете ffprobe то же число записано в атрибуте с именем probe_score.

Типичные значения

Эти примеры взяты из исходного кода FFmpeg 9.0. Другие версии могут давать другие значения, например 51 для примера с MP3 в FFmpeg 8.1.

  • 100: файл MP4 или MOV с разделом ftyp или moov
  • 100: файл Matroska или WebM с известным типом документа
  • 100: файл FLAC с корректной информацией о потоке
  • 99: файл WAV со стандартным заголовком RIFF
  • 52: файл MP3 как минимум с 7 аудиокадрами в начале
  • 51: файл AAC в формате ADTS как минимум с 3 аудиокадрами в начале
  • 50: файл в формате без детектора, который совпал только по расширению
  • 0: файл, для которого формат был принудительно задан опцией -f, поэтому FFmpeg пропустил определение формата

Почему это важно для вашего файла

Обнаруженное значение 25 или ниже - это предупреждающий сигнал, а не доказательство ошибки. Затем FFmpeg выводит сообщение со словами misdetection possible, что означает, что FFmpeg мог выбрать неверный формат.

Значение около 50 нормально для файлов MP3 и AAC, потому что их детекторы не возвращают больше 52. Поэтому значение 51 или 52 не означает, что с вашим файлом MP3 что-то не так.

Для обнаруженного значения 25 или ниже документация для разработчиков FFmpeg рекомендует повторную попытку с большим объемом данных. Опция -formatprobesize задает предел для определения формата в байтах. Опции -probesize и -analyzeduration решают другую задачу: они ограничивают объем данных, который FFmpeg читает для поиска деталей потоков.

Мета-ключи