You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ffmpeg叠加两个视频时的音频异常问题求助

FFmpeg 双视频叠加+双音频混音修正方案

核心修改点

  • 给弹窗音频添加对应起始时间的延迟,解决音频提前播放问题
  • 新增amix滤镜混合原视频和弹窗的两路音频,替换原有仅映射弹窗音频的逻辑

修正后代码

start = 30
popup_path = os.path.join(path, "popup.mov")
popup_duration = get_duration(popup_path)
subprocess.run(
    f'ffmpeg -y \
        -i {os.path.join(path, "2minutevideo.mp4")} \
        -i {popup_path} \
        -filter_complex \
        "[0:v]setpts=PTS-STARTPTS[v0]; \
        [1:v]setpts=PTS-STARTPTS+{start}/TB[v1]; \
        [v0][v1]overlay=enable=\'between(t, {start}, {start + popup_duration})\' [out_v]; \
        [1:a]adelay={start * 1000}|{start * 1000}[delayed_a1]; \
        [0:a][delayed_a1]amix=inputs=2:duration=first[out_a]" \
        {render_flags} -r 24 -map [out_v] -map [out_a] -async 1 \
        {os.path.join(source_folder, "test.mp4")}')

参数说明

  • adelay={start * 1000}|{start * 1000}:给弹窗音频的左右声道都添加对应毫秒数的延迟,适配你设置的弹窗起始时间,如果你实际定义的起始时间变量为notify_start,直接替换变量即可
  • amix=inputs=2:duration=first:混合两路音频,总时长以第一个输入(原2分钟视频)的时长为准,避免弹窗音频结束后原视频音量出现异常变化
  • 输出时分别映射处理后的视频流out_v和混合音频流out_a即可

内容的提问来源于stack exchange,提问作者crashyourtesla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 07:45:02