Будет ли FFmpeg каждый раз создавать один и тот же двоичный выходной файл?

Будет ли FFmpeg каждый раз создавать один и тот же двоичный выходной файл?

Если исходный файл не изменился и используется та же версия FFmpeg, будет ли выходной файл всегда одинаковым?

Допустим, у меня есть исходный файл с расширением AVI. Если я преобразую его в MP4 с использованием настроек FFmpeg по умолчанию, будет ли каждый запуск FFmpeg создавать побитно идентичные файлы?

решение1

Квалифицированный ответ — да. Обычные различия связаны со строками версий, встроенными кодерами и мультиплексорами. Добавление -bitexactподавит их.

Однако некоторые кодировщики, такие как x265, недетерминированы при многопоточном кодировании.

Есть еще несколько узкоспециализированных случаев, например, некоторые процедуры DSP на архитектурах PPC и Altivec, а также несколько процедур преобразования формата пикселей. -bitexactЗдесь также имеет значение, в каких процедурах они выбираются.

FFmpeg имеет автоматизированный набор для регрессионного тестирования, общедоступные результаты которого можно просмотреть по адресусудьба.ffmpeg.org.

Почти все тесты проверяются по хэшам эталонных запусков. Что в основном требует точности битов.

решение2

Это зависит от используемых кодеков и опций.

  1. команда ffmpeg -i big_buck_bunny_480p_stereo.avi out.mp4создает те же самые бинарные файлы. Но если вы добавите опции битрейта
ffmpeg -i big_buck_bunny_480p_stereo.avi -maxrate 500k -bufsize 500k out.mp4

вы можете получить разные результаты даже с -bitexact.

Итак, кодирование с использованием x264 (что является значением по умолчанию, .mp4если доступна libx264), несколько потоков (по умолчанию количество потоков равновыбрано автоматически) и параметры битрейта могут приводить к получению разных двоичных файлов.

  1. Возможно, вам придется убедиться, чтокодекверсии (не только версия ffmpeg) такие же, как ffmpeg с той же версией может быть настроен на использование разных версий libx264, что может привести к разным двоичным файлам в разных кодировках одного и того же файла. К сожалениюнет легкого путидля проверки версий кодеков.

Связанный контент