【发布时间】:2021-01-13 18:22:52
【问题描述】:
我需要对带有前 X 帧的视频的最后 X 帧应用交叉淡入淡出,以便获得无缝循环,但将其用于视频的必要部分。
Here's the answer for looping the entire video.
目前我拥有的: (整个视频时长 = 25。剪切(结果)部分 = 15 秒(从 5 秒到 20 秒)。过渡 = 1 秒。)
ffmpeg -i input.mp4 -ss 5 -to 20 -filter_complex
"[0]split[body][pre];
[pre]trim=duration=1,format=yuva420p,fade=d=1:alpha=1,setpts=PTS+( (15+(5-1)) /TB)[jt];
[body]trim=1,setpts=PTS-STARTPTS[main];
[main][jt]overlay" -c:v libx264 -preset veryslow -b:v 2500K output.mp4
在这种情况下,一切正常,但在生成的视频结束时,会叠加原始视频中的一段,从 0 到 1 秒开始,而不是从原始视频的 4 到 5 秒开始,因为它应该是。
我阅读了官方的 ffmpeg 文档,尝试通过更改“setpts”对“trim/fade”的“start/end”参数进行一些操作,但我总是遇到另一批错误。
【问题讨论】:
-
ss和to作为输出选项会影响过滤后的输出。将它们放在输入之前,应更正您的第一个 setpts 以考虑第二个修剪段的 setpts。
标签: video ffmpeg cut cross-fade