Audio 在输出中包含来自FFmpeg覆盖的音频

Audio 在输出中包含来自FFmpeg覆盖的音频,audio,video,ffmpeg,Audio,Video,Ffmpeg,我使用下面的命令将两个视频文件组合在一起,在第一个文件的某个点上覆盖第二个视频文件。结果就是我想要的,只是覆盖文件中的音频丢失了 ffmpeg.exe-y-hide_banner-ss 00:00:00.067-i promo.mov-i tag.mov-filter_complex[1:v]setpts=PTS+6.5/TB[a];[0:v][a]叠加=启用=gtet\,6.5[out]-映射[out]-映射0:a-映射1:a-c:v mpeg2video-c:a pcm_s16le-ar 4

我使用下面的命令将两个视频文件组合在一起,在第一个文件的某个点上覆盖第二个视频文件。结果就是我想要的,只是覆盖文件中的音频丢失了

ffmpeg.exe-y-hide_banner-ss 00:00:00.067-i promo.mov-i tag.mov-filter_complex[1:v]setpts=PTS+6.5/TB[a];[0:v][a]叠加=启用=gtet\,6.5[out]-映射[out]-映射0:a-映射1:a-c:v mpeg2video-c:a pcm_s16le-ar 48000-af loudnorm=I=-20:print_格式=摘要-预设超快-q:v 0-t 10 complete.mxf

如果没有-map 0:a,我就不会得到任何音频,但是第二个-map 1:a不会从-I tag.mov传递音频

我也尝试过amix,但它从开始就将两个剪辑中的音频合并在一起,我希望第二个文件中的音频在该文件开始叠加时开始


这也将是有益的,如果我可以使音频从第一个剪辑下降较低的时候叠加

amix不支持中途引入输入,因此解决方法是添加前置静音。您可以使用adelay过滤器来执行此操作

在叠加时,使来自第一个剪辑的音频降低

这可以使用侧链压缩器实现,该压缩器接受两个输入,并根据第二个输入的体积降低第一个输入的体积

所以使用


ffmpeg.exe-y-hide_banner-ss 00:00:00.067-i promo.mov-i tag.mov-filter_complex[1:v]setpts=PTS+6.5/TB[1v];[0:v][1v]覆盖=启用=gtet\,6.5[vout];[1:a]adelay=6.5s,apad,asplit=2[1amix][1aref];[0:a][1aref]侧链压缩[0asc];[0asc][1amix]amix=inputs=2:duration=first[aout]-map[vout]-map[aout]-c:v mpeg2video-c:a pcm_s16le-ar 48000-af loudnorm=I=-20:print_format=summary-preset ultrafast-q:v 0-t10 complete.mxf

在文件开始时,这仍然将两者混合在一起。共享完整日志。我让它工作了。必须将adelay更改为adelay=6500 | 6500,以考虑两个声道的音频。感谢您的帮助@gyan。您使用的是旧版本的ffmpeg。