Есть ли опция, которую я могу передать, чтобы мои опции -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