@nuttyaboutnatty «Устаревшие» сообщения, применяемые только к старым, мертвым, поддельным « ffmpeg» от вилки Libav, а не ffmpegот FFmpeg, который вернулся в 15.04.
-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 output.mkv -filter:v scale=720:-1 -acodec copy -threads 12 output_shrink.mkv(в версии ffmpeg 0.8.6-6: 0.8.6-0ubuntu0.12.10.1), но получил ошибкуUnrecognized option 'filter:v'
doug65536
6
После того, как я несколько раз пролистал справочную страницу для ffmpeg, я обнаружил, что вместо -filter:vэтого опция, похоже, была изменена на -vf.
doug65536
2
@ doug65536 -filter:vи -vfоба в порядке. Версия Ubuntu, которую вы использовали, сломана и устарела - это на самом деле не FFmpeg ffmpeg, а бинарный файл, поставляемый Libav (FFmpeg fork) под тем же именем.
Slhck
1
@MightyPork, вероятно, ваша сборка ffmpeg устарела - какие проблемы случаются? В любом случае, это действительно помогло мне (с ffmpeg version 2.4.10) уменьшить размер некоторых массовых видео, чтобы освободить место - спасибо!
Уилф
4
«-c» - это сокращение от -codec, «: a» указывает аудиопоток, «copy» - кодек копирования, который копирует поток (в данном случае аудиосигнал) без перекодирования. В основном аудио потоки будут проходить через. Это распространено, когда вы только манипулируете видео потоком.
Jimhark
14
Я использую следующие команды для масштабирования видео и изображений. Для фиксированной ширины и высоты -
ffmpeg
может быть устаревшим, см. здесь и здесьffmpeg
» от вилки Libav, а неffmpeg
от FFmpeg, который вернулся в 15.04.Ответы:
Самый простой пример:
Использование в
scale
фильтр обеспечит большую гибкость:-1
Покажет FFmpeg автоматически выбрать правильную высоту по отношению к предоставленной ширине , чтобы сохранить пропорции.-1
может также использоваться для ширины, если вы предоставляете заданную высоту.Один недостаток при использовании шкалы
libx264
является то , что этот кодер требует даже значения и масштаба может автоматически выбирать нечетное значение , что приводит к ошибке:width or height not divisible by 2
. Вы можете сказать шкале, чтобы выбрать четное значение для данной высоты (720 в этом примере):... или заданной ширины (1280 в этом примере):
Обратите внимание, что ваша сборка ffmpeg может жаловаться на то, что она не распознает
-c
или не-filter
опций Это также может не поддерживатьscale
. В этом случае вы должны использовать более новую версию ffmpeg, которую вы можете скачать как статическую сборку, или собрать самостоятельно .источник
ffmpeg -i output.mkv -filter:v scale=720:-1 -acodec copy -threads 12 output_shrink.mkv
(в версии ffmpeg 0.8.6-6: 0.8.6-0ubuntu0.12.10.1), но получил ошибкуUnrecognized option 'filter:v'
-filter:v
этого опция, похоже, была изменена на-vf
.-filter:v
и-vf
оба в порядке. Версия Ubuntu, которую вы использовали, сломана и устарела - это на самом деле не FFmpegffmpeg
, а бинарный файл, поставляемый Libav (FFmpeg fork) под тем же именем.ffmpeg version 2.4.10
) уменьшить размер некоторых массовых видео, чтобы освободить место - спасибо!Я использую следующие команды для масштабирования видео и изображений. Для фиксированной ширины и высоты -
и если вы хотите сохранить соотношение сторон, просто задайте высоту как -1, и он автоматически изменит размер в зависимости от ширины -
Если вы хотите масштабировать в зависимости от размера ввода, например, скажем, уменьшить ширину / высоту, наполовину вы можете сделать-
НОТА :
Статическая сборка может быть загружена с - https://johnvansickle.com/ffmpeg/
Документация: https://ffmpeg.org/ffmpeg.html#filter_005foption
источник