Почему размер файла конвертированного видео больше исходного размера файла? - PullRequest
2 голосов
/ 24 ноября 2011

Я использую ffmpeg для конвертирования видео в mp4.Это работает нормально и воспроизводится с высоким качеством. Нет проблем. Но в худшем случае я загрузил 14 МБ файл и после конвертации перешел в файл 30 МБ. Я использую по сценарию конвертировать

exec("ffmpeg -i videowithaudio.flv -vcodec libx264 -vpre hq -vpre ipod640 -b 250k -bt 50k -acodec libfaac -ab 56k -ac 2 -s 480x320 video_out_file.mp4 > output1.txt 2> apperror1.txt");   //webkit compatible

Я использую PHP для выполнения этой команды. Не могли бы вы помочь мне, как уменьшить размер файла с этих 30 МБ (почти до размера загружаемого файла в порядке) с тем же качеством.

Ответы [ 3 ]

1 голос
/ 24 ноября 2011

Файлы, преобразованные из flv в mp4, всегда будут иметь больший размер, чем исходный файл. Обычно FLV-файлы меньше других форматов, поэтому YouTube конвертирует все файлы в FLV.

Вы можете использовать параметр -sameq, чтобы сохранить качество видео и меньший размер результирующего выходного файла.

Пример 1:

ffmpeg -i input.flv -sameq -ar 22050 output.mp4

Пример 2:

exec("/usr/bin/ffmpeg -y -i input.flv -acodec libfaac -sameq -ar 44100 -ab 96k -coder ac -me_range 16 -subq 5 -sc_threshold 40 -b 1600k -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -i_qfactor 0.71 -keyint_min 25 -b_strategy 1 -g 250 -r 20 output.mp4");

Я создал эту команду, выполнив многократный поиск, и это удовлетворяет моим требованиям, используя ее, вы можете получить немного меньший размер файла, но с тем же качеством.

Надеюсь, это работает и для вас.

0 голосов
/ 06 декабря 2011
exec("ffmpeg -i videowithaudio.flv -vcodec libx264 -vpre hq -vpre ipod640 -b 250k -bt 50k -acodec libfaac -ab 56k -ac 2 -s 480x320 video_out_file.mp4 > output1.txt 2> apperror1.txt");   //webkit compatible

Важным для размера файла является битрейт .Битрейт указывает, сколько байтов использовать в секунду видео.Если вы уменьшите битрейт, размер файла также уменьшится.

В настоящее время вы используете видео со скоростью 250 кбит / с (-b 250k) и аудио со скоростью 56 кбит / с (-ab 56k), поэтому вам нужно уменьшить эти цифры,Например, вы можете попробовать: -b 100k -ab 32k.Но имейте в виду, что качество будет также уменьшаться при уменьшении битрейта.Если качество становится слишком плохим, вы также можете уменьшить частоту кадров или размер кадра, чтобы повысить качество.

0 голосов
/ 24 ноября 2011

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

Обратите внимание, что оптимальная частота ключевых кадров будет отличатьсядля каждого видео, поэтому вам нужно найти золотую середину.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...