Оцінка розпізнавання показує, наскільки впевнена FFmpeg у контейнерному форматі файлу. FFmpeg це мультимедійний фреймворк, який зчитує та конвертує аудіо- і відеофайли, а його програма ffprobe повідомляє цю оцінку.
Оцінка це ціле число від 0 до 100, і більша цифра означає сильнішу відповідність. Оцінка описує лише контейнерний формат, наприклад MKV або MP4. Вона не вимірює якість звуку чи зображення.
Звідки походить значення
Оцінка розпізнавання не зберігається у вашому файлі. FFmpeg обчислює це число щоразу, коли відкриває файл.
FFmpeg має невеликий детектор для багатьох форматів. Кожен детектор зчитує початок файлу, шукає ознаки свого формату і повертає оцінку. Формат із найвищою оцінкою перемагає.
FFmpeg починає з 2048 байтів даних. Якщо жоден формат не набирає понад 25, FFmpeg подвоює обсяг і пробує знову.
Типове обмеження становить 1 048 576 байтів, тобто приблизно 1 МБ. Під час останньої спроби достатньо будь-якої оцінки вище 0.
Якщо вхідні дані містять тип MIME, що відповідає формату, цей формат отримує 30 додаткових балів, але не більше 100. Якщо 2 формати набирають однаковий найвищий бал, FFmpeg відхиляє обидва. Якщо після останньої спроби жодного формату не залишилося, FFmpeg зупиняється з помилкою Invalid data found when processing input.
Як розширення файлу впливає на оцінку
Висока оцінка розпізнавання не доводить, що розширення файлу правильне. Наприклад, детектор Matroska повертає 100 для відомого типу документа в заголовку файлу, незалежно від його назви.
Коли формат має детектор, відповідне розширення зазвичай лише підвищує оцінку з 0 до 1. Формат без детектора покладається на розширення, і збіг дає такому формату оцінку 50. Щоб перевірити сумнівне розширення, порівняйте його з назвою формату, яку ffprobe показує поруч з оцінкою.
Як виглядає значення
З параметром -show_format ffprobe виводить оцінку окремим рядком у секції формату: probe_score=100. У звіті XML програми ffprobe це саме число міститься в атрибуті з назвою probe_score.
Типові значення
Ці приклади взято з вихідного коду FFmpeg 9.0. Інші версії можуть давати інші значення, наприклад 51 для прикладу MP3 у FFmpeg 8.1.
100: файл MP4 або MOV із секцієюftypабоmoov100: файл Matroska або WebM із відомим типом документа100: файл FLAC із коректною інформацією про потік99: файл WAV зі стандартним заголовком RIFF52: файл 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 зчитує для пошуку відомостей про потоки.