Можно ли изменить размеры моих видео, чтобы уменьшить их с помощью FFmpeg?
У меня есть оригинальное видео размером 1024x576, теперь я хочу изменить размер видео до 720x480, чтобы удовлетворить требования.
Как я могу это сделать?
Можно ли изменить размеры моих видео, чтобы уменьшить их с помощью FFmpeg?
У меня есть оригинальное видео размером 1024x576, теперь я хочу изменить размер видео до 720x480, чтобы удовлетворить требования.
Как я могу это сделать?
Самый простой пример:
ffmpeg -i input.avi -s 720x480 -c:a copy output.mkv
Использование scale
фильтра обеспечит большую гибкость:
ffmpeg -i input.avi -filter:v scale=720:-1 -c:a copy output.mkv
-1
скажет ffmpeg автоматически выбрать правильную высоту по отношению к предоставленной ширине, чтобы сохранить соотношение сторон. -1
также можно использовать для ширины, если вы задаете заданную высоту.
Недостатком масштаба при использовании libx264
является то, что для этого кодировщика требуются четные значения, а масштаб может автоматически выбирать нечетное значение, что приводит к ошибке: width or height not divisible by 2
. Вы можете сказать шкале, чтобы выбрать четное значение для данной высоты (720 в этом примере):
scale="trunc(oh*a/2)*2:720"
... или заданной ширины (1280 в этом примере):
scale="1280:trunc(ow/a/2)*2"
Обратите внимание, что ваша сборка ffmpeg может жаловаться на то, что не распознает параметры -c
или -filter
. Это также может не поддерживать scale
. В этом случае вам следует использовать более новую версию ffmpeg, которую вы можете скачать как статическую сборку, или скомпилировать самостоятельно .
Я использую следующие команды для масштабирования видео и изображений. Для фиксированной ширины и высоты -
ffmpeg -i input.avi -vf scale="720:480" output.avi
и если вы хотите сохранить соотношение сторон, просто задайте высоту как -1, и он автоматически изменит размер в зависимости от ширины -
ffmpeg -i input.avi -vf scale="720:-1" output.avi
Если вы хотите масштабировать в зависимости от размера ввода, например, скажем, уменьшить ширину / высоту, половина вы можете сделать-
ffmpeg -i input.avi -vf scale="iw/1:ih/2" output.avi
НОТА :
iw : input width
ih : input height
Статическая сборка может быть загружена с - https://johnvansickle.com/ffmpeg/
Документация: https://ffmpeg.org/ffmpeg.html#filter_005foption