使用 FFMPEG 实现效果时出现时间基错误

使用 FFMPEG 实现效果时出现时间基错误

我正在为多个视频添加特效,但出现了时基错误。请帮我修复这个问题。

以下错误: [Parsed_xfade_0 @ 000000f9115e4700] 第一个输入链接主时间基 (1/10000) 与相应的第二个输入链接 xfade 时间基 (1/12800) 不匹配 [Parsed_xfade_0 @ 000000f9115e4700] 无法在 Parsed_xfa de_0 上配置输出垫 重新初始化过滤器时出错! 无法将帧注入过滤器网络:参数无效 处理流 #4:0 的解码数据时出错 转换失败!

命令如下:

ffmpeg -i 6442.mov 
-i 1339.mov 
-i 3792.mov 
-i 3332.mov 
-i 2645.mov 
-filter_complex "[0][1]xfade=transition=fade:duration=0.5:offset=2[V01];
[V01][2]xfade=transition=fade:duration=0.5:offset=7.5[V02];
[V02][3]xfade=transition=fade:duration=0.5:offset=190.44[V03];
[V03][4]xfade=transition=fade:duration=0.5:offset=195.94,format=yuv420p[video];
[0:a][1:a]acrossfade=d=0.5:c1=tri:c2=tri[A01];[A01][2:a]acrossfade=d=0.5:c1=tri:c2=tri[A02];
[A02][3:a]acrossfade=d=0.5:c1=tri:c2=tri[A03];[A03][4:a]acrossfade=d=0.5:c1=tri:c2=tri[audio]" -map "[video]" 
-map "[audio]" -movflags +faststart 3914.mov

答案1

xfade 过滤器要求两个输入具有相同的时间基准。此外,还要求具有相同的分辨率和帧速率。帧速率是在时间基准之后检查的,因此如果您收到与此相关的错误,请在 settb 过滤器后添加 fps=30。

ffmpeg -i 6442.mov 
-i 1339.mov 
-i 3792.mov 
-i 3332.mov 
-i 2645.mov 
-filter_complex "
[0]settb=AVTB[0v];
[1]settb=AVTB[1v];
[2]settb=AVTB[2v];
[3]settb=AVTB[3v];
[4]settb=AVTB[4v];
[0v][1v]xfade=transition=fade:duration=0.5:offset=2[V01];
[V01][2v]xfade=transition=fade:duration=0.5:offset=7.5[V02];
[V02][3v]xfade=transition=fade:duration=0.5:offset=190.44[V03];
[V03][4v]xfade=transition=fade:duration=0.5:offset=195.94,format=yuv420p[video];
[0:a][1:a]acrossfade=d=0.5:c1=tri:c2=tri[A01];[A01][2:a]acrossfade=d=0.5:c1=tri:c2=tri[A02];
[A02][3:a]acrossfade=d=0.5:c1=tri:c2=tri[A03];[A03][4:a]acrossfade=d=0.5:c1=tri:c2=tri[audio]" -map "[video]" 
-map "[audio]" -movflags +faststart 3914.mov

相关内容