FFmpeg - включить все параметры видеофильтра (-vf) в определенное время видео

FFmpeg - включить все параметры видеофильтра (-vf) в определенное время видео

Есть ли опция, которую я могу передать, чтобы мои опции -vfили -filter_complexстановились активными только в определенное время видео (например, через 5 секунд после начала видео?) в одной команде (без объединения двух разных видеофайлов)?

Что-то вроде этого:

ffmpeg -i input.mp4 -vf "eq=contrast=250.0, time=start=5:end=15" output.mp4

Фильтр contrastпоявлялся на видео только с 5 по 15 секунду.

Может быть, я могу объединить два отдельных видео в одну строку? Любые указания будут оценены, спасибо.

Редактировать:только что прочиталРедактирование временной шкалыраздел в документации ffmpeg - но, как я понимаю, не все фильтры это поддерживают. Есть ли универсальный метод?

решение1

Если фильтр поддерживает редактирование временной шкалы, то вы можете установить ключевое слово enable для этого фильтра, например

ffmpeg -i input.mp4 -vf "eq=contrast=250.0:enable='between(t,5,15)'" output.mp4

Если этого не происходит, то можно использовать комбинацию фильтров разделения, обрезки и объединения, чтобы сегментировать входные данные для выборочной обработки.

ffmpeg -i input.mp4 -vf "split=3[pre][affected][post];[pre]trim=0:5,setpts=PTS-STARTPTS[pre];[affected]trim=5:15,setpts=PTS-STARTPTS,eq=contrast=250.0[affected];[post]trim=15,setpts=PTS-STARTPTS[post];[pre][affected][post]concat=n=3:v=1:a=0" output.mp4

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