2015-12-31 2 views
1

Я хочу, чтобы записать файл субтитров (.srt) к команде mp4 video.My является:FFmpeg слишком большой

ffmpeg -i input.mp4 -c:v mpeg4 -q:v 1 -vf subtitles=input.srt out.mp4

Это выход видео с хорошим качеством, но его размер составляет 1.12 ГБ, а входной файл - 213 МБ.

Я думаю, что проблема в kbps выходного файла слишком высока. Битрейт входного файла составляет 568 кбит/с, но выходной файл 3154 кбит/с.

Так что я хочу, чтобы установить КПС, теперь вот мой код:

ffmpeg -i input.mp4 -b:v 569k -minrate 568k -maxrate 570k -c:v mpeg4 -q:v 1 -vf subtitles=input.srt out.mp4 

Хотя выходной файл становится меньше (538MB), качество видео является ужасно (для сравнения входного файла) ... Итак, как сделать выходной файл меньшим и в хорошем качестве? Спасибо.

ответ

3

Попробуйте это:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -vf subtitles=input.srt out.mp4 

Это использует библиотеку x264 вместо mpeg4. Он новее и имеет лучшее сжатие. Вы можете попробовать сыграть с 23, переданными в -crf. Constant Rate Factor даст лучшие результаты и более высокие размеры файлов при более низких значениях и более плохие результаты при меньших размерах файлов при более высоких значениях. Попробуйте что-то между 20 и 30.

Если вы уверены, что хотите придерживаться mpeg4, this page детализирует параметры немного больше и может помочь.

И если вы хотите, чтобы ваши субтитры выглядели лучше, взгляните на разные options for subtitles, например, используя разные шрифты.

+0

Спасибо, он работает хорошо. Так моя проблема в том, как выбрать кодировщик? Это зависит больше от входного файла или выходного файла? –

+0

Я не уверен, что вы просите. ffmpeg может читать много, много разных типов видео и писать для разных типов. Я не знаю много о mpeg4, за исключением того, что он старше x264. До тех пор, пока ваш входной файл имеет хорошее качество, вы должны иметь возможность получать свой результат с хорошим качеством и схожим размером файла, хотя есть много разных вариантов качества, поэтому это может быть очень запутанным. – WhiteHotLoveTiger

+0

Что-то еще, что вы, возможно, захотите прочитать, это сделать кодировку с двумя проходами. Эта ссылка дает некоторые подробности для x264: https://trac.ffmpeg.org/wiki/Encode/H.264#twopass – WhiteHotLoveTiger