использование фильтра масштаба сделает это, но есть кое-что еще.
ffmpeg -i input.mov -vf scale=720x406 output.mov
создаст фильм с необходимыми размерами в пикселях, но если вы посмотрите на вывод, вы обнаружите, что он добавляет информацию в метаданные, так что он будет воспроизводиться с тем же соотношением сторон, что и оригинал, с использованием неквадратных пикселей. Поэтому, если вы хотите растянуть фильм анаморфно до нового соотношения сторон, вам нужно вручную установить соотношение сторон пикселя, называемое SAR для «Sample Aspect Ratio», таким образом, для квадратных пикселей используйте:
ffmpeg -i input.mov -vf scale=720x406,setsar=1:1 output.mov
В качестве альтернативы вы можете установить соотношение сторон дисплея на то, что вы хотите, таким образом:
ffmpeg -i input.mov -vf scale=720x406,setdar=16:9 output.mov
То, что я делаю с помощью команды -vf и выражений x = y, z = a, создает цепочку фильтров . Фильтры могут быть довольно сложными, но при наиболее простом использовании они принимают форму effect=parameter,nexteffect=anotherparameter
и обрабатываются в том порядке, в котором вы их пишете.
Возможно, вы захотите добавить дополнительные команды для кодека и т. Д., Например, -c:v libx264
использовать кодер x264 mp4 и что-то вроде -crf 20
установить коэффициент постоянной скорости равным 20 (обычно это довольно хороший компромисс между размером и качеством). Итак, достаточно полная команда будет выглядеть так:
ffmpeg -i input.mov -vf scale=720x406,setdar=16:9 -c:v libx264 -preset slow -profile:v main -crf 20 output.mov
Основной профиль хорош для совместимости устройств, slow
предустановка для кодера libx264 - это довольно хороший баланс скорости и качества, так что это хорошая рабочая лошадка для веб-кодирования. Вы можете сделать это быстрее, используя fast
или veryfast
или медленнее, veryslow
и placebo
сделаете это немного лучше, чем veryslow
за счет гораздо большего времени обработки (отсюда и название).
КСТАТИ Не используйте -c копию , что означает просто скопировать видео и аудио потоки , ничего не делая для них на всех , так что вы ничего сделать с точки зрения масштаба, кодек, битрейт и т.д. будет иметь никакого эффекта.
setsar
просто косвенно устанавливает DAR?