我有以下FFMPEG命令:
ffmpeg -i ./master_video.mp4 -i ./temp/temp1.mp4 -i ./temp/temp2.mp4 -y -filter_complex [0:v]setpts=PTS-STARTPTS[v0];[1:a]asetpts=PTS-STARTPTS,volume=0.1[aud1];[1:v]setpts=PTS-STARTPTS+5/TB,fade=t=in:st=5:d=1:alpha=1,fade=t=out:st=14:d=1:alpha=1[v1];[2:a]asetpts=PTS-STARTPTS,volume=0.1[aud2];[2:v]setpts=PTS-STARTPTS+10/TB,fade=t=in:st=10:d=1:alpha=1,fade=t=out:st=19:d=1:alpha=1[v2];[v0][v1]overlay=eof_action=pass[out1];[out1][v2]overlay=eof_action=pass[out2] -map [out2] -map [aud1][aud2] temp.mp4
但是当我运行它时,我收到以下错误:
错误:ffmpeg退出代码1:过滤器卷的输出未连接
出现错误的原因是什么?
答案 0 :(得分:0)
如果您想混合音频输出,则需要在滤镜图中完成。
使用
ffmpeg -y -i ./master_video.mp4 -i ./temp/temp1.mp4 -i ./temp/temp2.mp4 -filter_complex
"[0:v]setpts=PTS-STARTPTS[v0];
[1:a]asetpts=PTS-STARTPTS,volume=0.1[aud1];
[1:v]setpts=PTS-STARTPTS+5/TB,fade=t=in:st=5:d=1:alpha=1,fade=t=out:st=14:d=1:alpha=1[v1];
[2:a]asetpts=PTS-STARTPTS,volume=0.1[aud2];
[2:v]setpts=PTS-STARTPTS+10/TB,fade=t=in:st=10:d=1:alpha=1,fade=t=out:st=19:d=1:alpha=1[v2];
[v0][v1]overlay=eof_action=pass[out1];
[out1][v2]overlay=eof_action=pass[vout];
[aud1][aud2]amix[aout]"
-map [vout] -map [aout] temp.mp4
请注意,主视频中的任何音频都会被忽略,就像您的原始命令有效一样。此外,由于setpts表达式不同,临时视频中的音频和视频不再同步。