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

解决FFmpeg合成视频无声音问题的技术求助

修复FFmpeg拼接视频无声音问题

问题根源

原命令存在两个关键问题导致输出无声音:

  • concat=n=2:v=1:a=0参数中的a=0明确指定忽略音频轨道,仅拼接视频
  • 最终仅通过-map "[out]"映射了视频输出流,完全未处理音频部分

修复后的命令

基础修复版(适用于音频参数一致的情况)

ffmpeg -i intro.mp4 -i video.mp4 -i watermark.jpg -filter_complex "[0:v]scale=854x480[intro_v];[0:a][1:a]concat=n=2:v=0:a=1[out_a];[1:v][2:v]overlay=x=10:y=10,drawtext=text='TEXT':box=1:boxborderw=5:boxcolor=black:x=(w-text_w)/2:y=h-th:fontsize=30:fontcolor=white:enable='between(t,0,15)'[main_v];[intro_v][main_v]concat=n=2:v=1:a=0[out_v]" -map "[out_v]" -map "[out_a]" -pix_fmt yuv420p -c:a copy -c:v libx264 out.mp4

兼容版(适用于音频参数不一致的情况)

如果intro.mp4和video.mp4的音频采样率、声道数等参数不同,需先统一音频参数再拼接:

ffmpeg -i intro.mp4 -i video.mp4 -i watermark.jpg -filter_complex "[0:v]scale=854x480[intro_v];[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo[intro_a];[1:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo[main_a];[intro_a][main_a]concat=n=2:v=0:a=1[out_a];[1:v][2:v]overlay=x=10:y=10,drawtext=text='TEXT':box=1:boxborderw=5:boxcolor=black:x=(w-text_w)/2:y=h-th:fontsize=30:fontcolor=white:enable='between(t,0,15)'[main_v];[intro_v][main_v]concat=n=2:v=1:a=0[out_v]" -map "[out_v]" -map "[out_a]" -pix_fmt yuv420p -c:a copy -c:v libx264 out.mp4

修改说明

  1. 音频拼接处理:新增音频流拼接逻辑,将intro.mp4和video.mp4的音频轨道合并为一个输出音频流[out_a]
  2. 双流映射:通过-map "[out_v]" -map "[out_a]"同时映射视频和音频流到输出文件
  3. 兼容性优化:指定视频编码为libx264、像素格式为yuv420p,确保输出视频在多数播放器中正常播放;音频保持-c:a copy直接复制,避免编码损失
  4. 参数统一(兼容版):使用aformat滤镜统一音频采样率、声道和格式,解决因音频参数不一致导致的拼接失败问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 00:05:21