First input link main timebase (1/12800) do not match the corresponding second input link xfade timebase (1/90000)
当我运行以下 ffmpeg cmd 时出现错误:
ffmpeg -y -progress .progressinfo.dat
-i "E:/tmp/_MERGED.Test0.mp4" -i "E:/tmp/f3.ts"
-filter_complex "
[0][1:v]xfade=transition=fade:duration=1:offset=1.645,format=yuv420p ;
[0:a][1:a]acrossfade=d=1"
-movflags +faststart "E:/_MERGED.Test.mp4"
我该如何解决?
答案1
您可以使用以下方法校正时间基准settb
筛选。
如果音频有问题,请使用asettb
过滤器。
在里面文档例如,settb
后跟setpts=PTS-STARTPTS
,用于修复时间戳。
命令行:
ffmpeg -y -progress .progressinfo.dat
-i "E:/tmp/_MERGED.Test0.mp4"
-i "E:/tmp/f3.ts"
-filter_complex "[0:v]settb=AVTB,setpts=PTS-STARTPTS[v0];
[1:v]settb=AVTB,setpts=PTS-STARTPTS[v1];
[v0][v1]xfade=transition=fade:duration=1:offset=1.645,format=yuv420p;
[0:a]asettb=AVTB,asetpts=PTS-STARTPTS[a0];
[1:a]asettb=AVTB,asetpts=PTS-STARTPTS[a1];
[a0][a1]acrossfade=d=1"
-movflags +faststart
"E:\tmp\out_MERGED.Test.mp4"
答案2
因此,在得到了 Rotem 的大量帮助(再次感谢 Rotem)以及不同的尝试和解决了许多由此产生的问题之后,我想我已经找到了解决方案 - 那就是放弃尝试一次性完成它,而是将其分成 3 个 - (a)视频合并 + (b)音频合并 + (c)将视频和音频混合在一起。
为此,我找到了一个非常有用的网页 https://romander.github.io/ffmpeg-script-generator/,它给了我所需的命令(使用“分别生成音频和视频脚本?(分开脚本更有效)“复选框)。
(注意,我还添加了-crf 0
ffmpeg 视频合并(a)和最终合并(c)命令)。