ffmpeg - 使用淡入淡出制作无缝循环

标签 ffmpeg cross-fade

我想对带有前 x 帧的视频的最后 x 帧应用交叉淡入淡出,以获得无缝循环。

我怎样才能做到这一点?

最佳答案

假设您的视频时长为 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

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

关于ffmpeg - 使用淡入淡出制作无缝循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38186672/

相关文章:

html - CSS 交叉淡入淡出动画

java - Android studio crossfade drawables 崩溃应用程序

audio - 使用ffmpeg在两个音频文件之间交叉淡入淡出?

node.js - 如何在 node-fluent-ffmpeg 上获取 stderr

iphone - android 和 IOS 上加载什么 h.264 格式?

node.js - ffmpeg - 如何检测视频裁剪是否完成?

css - 如何在 flexbox 容器内交叉淡入淡出图像?

c# - 使用 ffmpeg 从网络摄像机获取流并另存为 jpeg(图像)文件

FFMPEG RTP MpegTS 复用率

javascript - jQuery 图像交叉淡入淡出不起作用