如何将带xfade转场拼接、添加视频淡入的两条ffmpeg命令合并为一条?
FFmpeg 双命令合并方案
实现逻辑
将第二条命令的开头淡入滤镜直接追加到第一条命令的视频拼接滤镜链末尾即可,无需生成中间文件。你了解的「同流简单滤镜用逗号分隔」规则完全适配当前场景:拼接完成的视频流直接按顺序叠加淡入效果,再输出最终视频流即可。
合并后完整命令
ffmpeg -i input0.mp4 -i input1.mp4 -i input2.mp4 -i input3.mp4 -i input4.mp4 -filter_complex "[0:v][1:v]xfade=transition=fade:duration=0.500:offset=27.486[v01];[v01][2:v]xfade=transition=fadeblack:duration=1.000:offset=31.531[v02];[v02][3:v]xfade=transition=fadeblack:duration=1.000:offset=42.972[v03];[v03][4:v]xfade=transition=fade:duration=0.500:offset=94.149,fade=t=in:st=0.000:d=1.000:color=black,format=yuv420p[video];[0:a][1:a]acrossfade=d=0.500:c1=tri:c2=tri[a01];[a01][2:a]acrossfade=d=1.000:c1=tri:c2=tri[a02];[a02][3:a]acrossfade=d=1.000:c1=tri:c2=tri[a03];[a03][4:a]acrossfade=d=0.500:c1=tri:c2=tri[audio]" -map [video] -map [audio] -movflags +faststart output.mp4
修改说明
- 仅在原有视频拼接滤镜的xfade参数之后、format参数之前插入了
fade=t=in:st=0.000:d=1.000:color=black淡入参数,用逗号和前后滤镜分隔即可 - 音频处理逻辑、输出参数完全和原需求一致,无额外性能损耗
内容的提问来源于stack exchange,提问作者Richard
相关产品推荐
相关产品推荐

