FFmpeg complex_filter的loop参数无法实现幻灯片无限循环问题
FFmpeg幻灯片无限循环失效解决方法
问题根因
原配置中loop过滤器缺失关键参数,生成的单次幻灯片流时长固定(约15.5秒),默认配置下loop仅能在原始流的帧范围内循环,无法无限延长流时长匹配音频总长度。同时背景视频未配置循环,也会提前终止导致整体输出提前结束。
修正点说明
- 给背景视频输入添加
-stream_loop -1参数,实现背景视频无限循环 - 完善
loop过滤器参数,明确指定单次循环的帧数量(单次幻灯片时长*输出帧率) - loop后新增
setpts过滤器重置时间戳,保证循环后播放时序正常
修正后完整代码
ffmpeg -y \ -loop 1 -t 5.5 -i /uploads/2021/07/slide04-scaled.jpg \ -loop 1 -t 5.5 -i /uploads/2021/07/Slide05-scaled.jpg \ -loop 1 -t 5.5 -i /uploads/2021/07/Slide06-scaled.jpg \ -stream_loop -1 -i /slowwmo-videos/intro.mp4 \ -i /uploads/2021/07/busy_bees_01.mp3 \ -filter_complex \ " [1]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+5/TB[a1]; [2]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+10/TB[a2]; [0][a1]overlay[b2]; [b2][a2]overlay[slides]; [slides]loop=loop=-1:size=388:start=0,setpts=N/FRAME_RATE/TB,scale=iw/6:ih/6,format=yuv420p,fps=fps=25[pip]; [3][pip]overlay=W-w-100:200[v] " \ -map [v]:v:0 -map 4:a:0 -vcodec libx264 -profile:v main -video_track_timescale 25000 -pix_fmt yuv420p -s 1280x720 -acodec aac -af aresample=44100 -shortest /slowwmo-videos/busy_bees/7494.ts
参数调整说明
如果后续修改幻灯片单张时长、输出帧率,需要重新计算size参数值:size = 单次幻灯片总时长 * 输出帧率,避免循环衔接异常。
内容的提问来源于stack exchange,提问作者Dzseti
相关产品推荐
相关产品推荐

