Ответ 1
ffmpeg -i <input> -vf scale=720x406,setdar=16:9 <output>
Узнайте больше об этом,
все.
Как изменить разрешение видео с соотношением сторон с FFmpeg?
Есть варианты http://manpages.ubuntu.com/manpages/oneiric/man1/ffmpeg.1.html
-s size
Set frame size. The format is wxh (ffserver default = 160x128,
ffmpeg default = same as source). The following abbreviations are
recognized:
и
-aspect aspect
Set the video display aspect ratio specified by aspect.
aspect can be a floating point number string, or a string of the
form num:den, where num and den are the numerator and denominator
of the aspect ratio. For example "4:3", "16:9", "1.3333", and
"1.7777" are valid argument values.
Например, у меня есть два входных видео:
Мне нужно сделать выходное видео с разрешением 100 * 200.
Если я запустим ffmpeg с -s 100x200, то второе видео будет иметь плохую пропорцию.
Как ограничить выходное видео по ширине, с автоматическим соотношением сторон по высоте?
Например, я хочу указать для выходного видео только ширину 100 пикселей, а ffmpeg должен автоматически вычислять высоту с правильным соотношением сторон.
Для первого видео это будет:
200/100 = 2
400/2 = 200
Т.е. 100x200
Для второго видео это будет:
400/100 = 4
700/4 = 75
Т.е. 100x75
Возможно ли это?
ffmpeg -i <input> -vf scale=720x406,setdar=16:9 <output>
Узнайте больше об этом,
Не работает с видео. Эта страница касается только неподвижных изображений.
По причинам, не полностью понятым, обезьяны FFMPEG вокруг с соотношением Sample/Pixel Aspect Ratio возвращают видео в исходное соотношение сторон. Например, если вы растягиваете видеоизображение вдвое шире, это сделает соотношение сторон 1: 2 или что-то подобное (2: 1?)
Таким образом, если вы действительно хотите растянуть видео из стиля "Stretch Armstrong", вам нужно заставить SAR (Sample Aspect Ratio):
ffmpeg -i <something> -vf scale=iw*55:ih,setsar=1:1 ...
Это не очень хорошо описано в руководстве FFMPEG, здесь ответ video.stackexchange, который помещает все это в одном месте.
Ниже приведены оба варианта: со шкалой:
ffmpeg -i source.mp4 -r 15 -s 320x240 -strict -2 destination.mp4
С соотношением сторон:
ffmpeg -i source.mp4 -r 15 -aspect 1:1 -strict -2 destination.mp4
Используйте магическое число -1
для пропорционального изменения размера видео, и setdar
нужно использовать косую черту /
качестве разделителя, а не двоеточия :
ffmpeg -i <input> -vf "scale=100:-1,setdar=16/9" <output>
Команда изменит размер видео от 200x400
до 100x200
и от 400x700
до 100x175
с соотношением сторон 16:9
Я использую iDealshare VideoGo, чтобы изменить соотношение сторон видео: нажмите "Настройка..." → "Дополнительные параметры" → "Соотношение сторон", нажмите кнопку "Авто", чтобы выбрать 4: 3 или 16: 9, или просто перезаписать желаемый, такой как 2,35: 1, 1,85: 1, 1:1 и т.д.