Как выбрать целевой файл фиксированного размера с помощью ffmpeg
?
Если вы хотите транскодировать с использованием x264
, вы можете следовать руководству по кодированию, в котором приведены примеры того, как настроить таргетинг на файл определенного размера.
target bitrate = target filesize / duration
ie bitrate = 46000 / 15
ie bitrate = 3067 (kbit / s)
Вероятно, вам понадобится немного этого для аудио; в качестве приблизительного значения по умолчанию руководство использует 128k, поэтому целевой битрейт составляет 2939 кбит / с. Затем вы можете использовать спецификацию двухпроходного кодирования:
ffmpeg -y -i input -c:v libx264 -preset medium -b:v 2939k -pass 1 -c:a libfdk_aac -b:a 128k -f mp4 /dev/null && \
ffmpeg -i input -c:v libx264 -preset medium -b:v 2939k -pass 2 -c:a libfdk_aac -b:a 128k output.mp4
Этот метод обычно используется, если вы ориентируетесь на определенный размер выходного файла, а качество вывода от кадра к кадру имеет меньшее значение.
Конечно, вы можете настроить это в соответствии с вашими потребностями с точки зрения кодирования звука и так далее, но в итоге вы должны получить файл размером 46000 КБ.