ffmpeg - 使用交叉淡入淡出进行无缝循环

Vin*_*anz 3 ffmpeg cross-fade

我想将交叉渐变应用于具有前x帧的视频的最后x帧,以便获得无缝循环.

我怎样才能做到这一点?

Gya*_*yan 9

假设您的视频长达30秒,您的淡入淡出时间为1秒.你的命令就是

ffmpeg -i video.mp4 -filter_complex
        "[0]split[body][pre];
         [pre]trim=duration=1,format=yuva420p,fade=d=1:alpha=1,setpts=PTS+(28/TB)[jt];
         [body]trim=1,setpts=PTS-STARTPTS[main];
         [main][jt]overlay"   output.mp4
Run Code Online (Sandbox Code Playgroud)

视频分为两个相同的流.第一个被修剪到第一秒,添加了alpha通道,然后褪色.第一个流上的最后一个过滤器延迟了28秒,因为最终输出将修剪掉原始剪辑的第一秒并与最后一秒重叠.修剪第二个流以开始,t=1并且处理后的第一个流重叠在第二个流上.由于alpha通道在第一个流中褪色,因此它会交叉淡入淡出.