У вас есть несколько вопросов, и вы уже решили flv does not support that sample rate
включительно -ar
. Мне потребовалось несколько комментариев для разъяснения, но ваша другая проблема, если я правильно вас понимаю, заключается в том, что вывод по-прежнему слишком велик в размере файла.
Вы упомянули FFmpeg: The ultimate Video and Audio Manipulation Tool, который объясняет:
ОФД может быть любым в пределах от 0 до 51, с разумных пределах будучи 17 до 23. Чем ниже, тем лучше качество, тем выше размер файла. В общем, лучше всего просто попытаться сами убедиться, что выглядит хорошо. Учитывайте размер файла результата, который вы хотите, и сколько качества вы можете торговать за меньшие размеры файлов. Все зависит от тебя.
Это означает, что вам нужно выбрать наивысшее значение CRF, которое по-прежнему дает вам качество, которое вы хотите. Поэтому вместо 19, который является очень высоким качеством, попробуйте более высокое значение. Это не значит, что вам нужно кодировать все видео, чтобы получить общее представление о том, как будет выглядеть конкретное значение crf. Используйте опции -ss
и -t
для выбора случайных секций для кодирования. В этом примере будет пропускать первые 2 минуты и 30 секунд, и кодировать 10 второй клип:
ffmpeg -ss 00:02:30 -i input -t 30 -c:v libx264 -preset medium -crf 24 output.mp4
Как показано в примере -ss
и -t
может принимать либо часы: минуты: секунды или нескольких секунд.
Выбор использования crf означает, что вы хотите, чтобы ваши выходы имели определенное качество и размер файла, меньше беспокоит. Если обратное верно, то, что вы хотите, чтобы ваш результат был определенным размером и качеством файла, не имеет особого значения, тогда вам нужно использовать двухпроходный режим битрейта вместо crf. Вы не можете легко узнать, какой размер файла будет с crf, но двухпроходный код с -b:v
может приблизительно позволить вам выбрать размер файла заранее. В этом example требуемом выходе составляет 100 МБ, а вход 671 секунд в длительности (см ссылки на математику), так что команда будет:
ffmpeg -i input -c:v libx264 -preset medium -b:v 1092k -pass 1 -an -f mp4 -y NUL
ffmpeg -i input -c:v libx264 -preset medium -b:v 1092k -pass 2 -c:a libfaac -b:a 128k output.mp4
Лично я редко использую два прохода кодирование, потому что я предпочитайте, чтобы мой набор видео был схожим качеством (и, следовательно, менялся размер файлов, о которых мне больше не относится).
Что касается -3 (текущего вопроса о вопросе защиты от stackoverflow), я полагаю, что читатели считали, что ваш вопрос неясен, так как вы не объяснили «без успеха», поэтому никто не знал, какова фактическая проблема. Будьте прямолинейными, описательными и предоставляйте всю полезную информацию: особенно команды и выходы консоли с вашим следующим вопросом FFmpeg, и вы получите лучшие и быстрые ответы.
Просьба показать полный, неразрешенный консольный вывод 'ffmpeg -i in.mp4 -c: v libx264 -ar 22050 -crf 19 out.flv'. – LordNeckbeard
Что такое '-crf 19'? Я не вижу его в [текущих документах FFmpeg] (http://ffmpeg.org/ffmpeg.html). – blahdiblah
Привет @LordNeckbeard и спасибо за вашу помощь! Я разрезал печатный экран информации в конце конвертации FFMPEG, я надеюсь, что это то, о чем вы просили, а если нет, извините и просто скажите, где я могу найти именно консольный вывод. [Изображение здесь] (http://imageshack.us/f/716/ffmpeg1.jpg/) Размер файла после преобразования был 163mo и оригинал 187. Это хорошо, но много раз я делаю что-то вроде что с FFMPEG результат был более 89/90mo для оригинального размера файла 187mo. Si, я думаю, что я ошибаюсь в отношении кода линии, который я использую для этого преобразования. Спасибо! –