Как условно размыть видео с помощью FFMPG

Я хочу условно размыть видео
Как и для 30-секундной видеоформы 2-10-секундной размытия другой области, чем 12-20 секунд.

но я могу только размыть его 1 раз только до сих пор, следуя команде, которую я пытался достичь цели.
Использование Arithematic Выражения

ffmpeg -y -i with_out_sound.mp4
filter_complex [0:v]boxblur=10:enable='between(t,2,10)'[bg],[0:v]crop=206:169:3
2:121[fg],[bg][fg]overlay=32:121:enable='between(t,2,10)'[tmp];[0:v]boxblur=10:
enable='between(t,12,20)'[bg],[0:v]crop=206:169:42:100[fg],[bg][fg]overlay=42:100
:enable='between(t,12,20)'[tmp2];[tmp][tmp2]concat[tmp3] -map [tmp3] with_out_sou
ndd.mp4

но выше команды сначала размытие (2-10) полное видео, а затем снова конкат полное видео с размытием (12-20), поэтому я получаю 60-секундное видео вместо 30 второй.

ffmpeg -y -i with_out_sound.mp4 -filter_complex [0:v]boxblur=10:enable='between(t,2,10)'[bg];[bg]crop=206:169:32:121[fg];[bg][fg]overlay=32:121:enable='between(t,2,10)'[tmp],[tmp]b
oxblur=10:enable='between(t,12,20)'[tbg],[tmp]crop=206:169:42:100[tfg],[tbg][tfg]overlay=42:100:enable='between(t,12,20)'[tmp2] -map
"[tmp2]" with_out_soundd.mp4

но в этом случае я начинаю получать ошибку
Спецификатор потока 'tmp' в описании filtergraph не соответствует потоку.

Я использую ffmpeg последнюю версию на windows.

11
задан user2528012
10.05.2023 10:30 Количество просмотров материала 3094
Распечатать страницу

1 ответ

использовать

ffmpeg -y -i with_out_sound.mp4 -filter_complex \
"[0:v]boxblur=10:enable='if(between(t,2,10)+between(t,12,20),1,0)'[bg];
 [0:v]crop=206:169:32:121[fg1];[0:v]crop=206:169:42:100[fg2];
 [bg][fg1]overlay=32:121:enable='between(t,2,10)'[tmp];
 [tmp][fg2]overlay=42:100:enable='between(t,12,20)'[tmp2]"
-map [tmp2] with_blur.mp4

вы можете добавить несколько условий, чтобы сделать размытие в одном выполнении фильтра, а затем использовать два наложения. Метода concat избежать. Если вы хотите использовать конкат, вы должны обрезать два потока, но это проще.

условное используется if(x,y,z), который оценивает x и возвращает y если true, то else z.

0
отвечен Gyan 2023-05-11 18:18

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх