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

FFmpeg叠加视频丢失单个音频的问题解决求助

解决FFmpeg视频叠加后仅保留单个音频的问题

你当前命令里用movie滤镜加载第二个视频时,这个滤镜只会读取视频流,不会处理音频,所以输出自然只有第一个视频的声音。要同时保留两个音频,得把两个视频都作为独立输入源,再分别处理视频叠加和音频混合,修正后的命令如下:

ffmpeg -i screen.mkv -i webcam.mp4 -filter_complex "[1:v]scale=600:-1[inner];[0:v][inner]overlay=main_w-(overlay_w+10):main_h-(overlay_h+10)[outv];[0:a][1:a]amix=inputs=2:duration=longest[outa]" -map "[outv]" -map "[outa]" output.mp4

命令说明:

  • -i screen.mkv -i webcam.mp4:把两个视频都作为独立输入,0:对应screen.mkv,1:对应webcam.mp4
  • [1:v]scale=600:-1[inner]:对第二个视频的画面做缩放,宽度固定600,高度按比例自动计算,输出标记为[inner]
  • [0:v][inner]overlay=main_w-(overlay_w+10):main_h-(overlay_h+10)[outv]:把缩放后的第二个视频叠加到第一个视频的右下角(距离边缘各10像素),输出最终画面[outv]
  • [0:a][1:a]amix=inputs=2:duration=longest[outa]:混合两个视频的音频,以最长的音频时长为准,输出最终音频[outa]
  • -map "[outv]" -map "[outa]":指定输出文件使用处理后的画面和音频流

额外注意:

如果两个音频格式/采样率不统一导致报错,可以先统一音频参数再混合,比如:

ffmpeg -i screen.mkv -i webcam.mp4 -filter_complex "[1:v]scale=600:-1[inner];[0:v][inner]overlay=main_w-(overlay_w+10):main_h-(overlay_h+10)[outv];[0:a]aresample=44100[0a];[1:a]aresample=44100[1a];[0a][1a]amix=inputs=2:duration=longest[outa]" -map "[outv]" -map "[outa]" output.mp4

如果只想保留其中一个音频(比如只留screen.mkv的声音),去掉音频混合部分,换成-map 0:a即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:15:27