是否有一个选项可以传递,以便我的-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
如果过滤器支持时间线编辑,那么您可以为该过滤器设置启用关键字,例如
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