Ошибка ffmpeg: -vf/-af/-filter и -filter_complex нельзя использовать вместе

Ошибка ffmpeg: -vf/-af/-filter и -filter_complex нельзя использовать вместе

Я пытаюсь запустить следующую команду, которая должна добавить водяной знак к видео, а также увеличить его разрешение.

ffmpeg -i "in.avi" -i "\logo.png" -vf scale=854:-1  -preset 
veryfast -crf 20 -filter_complex overlay=5:5 "ou.mkv"

Я получаю следующую ошибку.

Filtergraph 'scale=854:-1' was specified through the 
-vf/-af/-filter option for output stream 0:0, which is fed from 
a complex filtergraph. -vf/-af/-filter and -filter_complex 
cannot be used together for the same stream.

До того, как я попытался масштабировать (без -vf scale=854:-1), cmd работал с водяными знаками.

Как мне достичь и того, и другого?

Что я пробовал?

  • Перемещение параметра -vf перед входом, после входа и т. д.

решение1

Вы можете использовать одинфильтрграфдля выполнения всех фильтров:

ffmpeg -i input.avi -i logo.png -filter_complex \
"[0:v]scale=854:-2[scaled]; \
 [scaled][1:v]overlay=5:5[out]" \
-map "[out]" -map 0:a -c:v libx264 -c:a copy output.mkv
  • [0:v]относится к видеопотоку(ам) первого входа ( input.aviв этом примере). [1:v]— это видео со второго входа ( logo.pngв этом примере).

  • Аудио естьпар скопированв этом примере вместо повторного кодирования; предполагая, что ваш первый входной сигнал содержит звук.

  • Лучше всего вручную присваивать имена входам и выходам фильтра, как в этом примере, а не полагаться на значения по умолчанию, которые могут привести к неправильному выбору потоков.

  • -2вмасштаб видеофильтраиспользуется вместо , -1поскольку x264 требует, чтобы выходной сигнал делился на 2 при выводе с цветовой субдискретизацией 4:2:0:

Если одно из значений равно -n с n > 1, фильтр масштабирования также будет использовать значение, которое сохраняет соотношение сторон входного изображения, вычисленное из другого указанного измерения. После этого он, однако, убедится, что вычисленное измерение делится на n, и скорректирует значение при необходимости.

Связанный контент