ffmpeg -ss 4.5 -t 3.9 -i input.mp4 -vf "fps=18,scale=360:-2:flags=lanczos,palettegen" palette.png

ffmpeg -ss 4.5 -t 3.9 -i input.mp4 -i palette.png -filter_complex "fps=18,scale=360:-2:flags=lanczos[x];[x][1:v]palett‎euse" output.gif

Я использовал эту команду, чтобы сделать gif, но я не знаю, что означает [x];[x][1:v] .

О чем это все?

2 ответа2

1

[x] - это просто имя, данное выходу фильтра.

Пожалуйста, прочитайте соответствующую запись в документации, а также часть о ярлыках ссылок.

Обычно простой фильтр берет один или несколько фильтров и помещает их в цепочку фильтров. Это тот случай, в вашей первой команде.

У вас есть сложный фильтр во второй команде, где может быть несколько цепочек фильтров, объединенных в граф фильтров, так как вы обрабатываете несколько входных потоков. Первая цепочка применяет fps и scale к первому входному видео, а вторая цепочка применяет фильтр paletteuse к выходу первой цепочки фильтров и второго входного изображения.

Каждая цепочка фильтров может иметь ноль или более входов и ноль или более выходов. В сложном фильтре вы обычно должны указать ffmpeg что это за входы и выходы для каждой из цепочек фильтров. Это то, что делает [x] .

По сути, [x] говорит, что вывод цепочки фильтров fps и scale называется x . Позже, он может быть повторно использован как вход для цепочки фильтров paletteuse . Вам не нужно использовать x ; Вы также можете использовать любое другое имя - что-то более наглядное, например scaled .

1

Это ярлыки ссылок.

Из документов,

Имя и аргументы фильтра могут предшествовать, а за ними следует список меток ссылок. Метка ссылки позволяет назвать ссылку и связать ее с выходом фильтра или панелью ввода.

Так, в scale=360:-2:flags=lanczos[x] , x - метка, назначенная выходу фильтра масштаба.

В [x][1:v]palett‎euse [x] означает подачу paletteuse с выходом масштабного фильтра в качестве первого входа, а [1:v] означает подачу первого видеопотока 2-го входа (палитра). .png).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .