Ubuntu 20.04下ffmpeg合并音视频后输出无声音如何解决
问题修复方案
你遇到的是-c copy流复制模式下音频编码与MP4容器不兼容导致的无声问题,可按以下步骤排查修复:
问题根源
-c copy参数会直接拷贝原始音视频流不做转码,MP4容器对原生MP3音频流的兼容性有限,此前运行正常是因为当时输入的MP3参数刚好适配容器要求,若近期输入文件的音频编码、采样率、声道数等参数发生变化,就会出现最终输出文件无声音的问题。
修复命令(兼顾速度与兼容性)
方案1:仅转码音频流,视频流保持原质量复制
ffmpeg -i input.mp4 -i input2.mp3 -c:v copy -c:a aac -b:a 256k output.mp4
说明:
-c:v copy直接复制视频流,处理速度和原命令几乎一致-c:a aac将MP3音频转码为MP4容器标准支持的AAC编码,兼容性拉满-b:a 256k指定音频码率,可根据原MP3质量调整为192k、320k等参数
方案2:明确指定流映射(适配原视频自带无声音轨的场景)
如果原input.mp4本身包含空的音轨,ffmpeg默认会保留原音轨导致播放器优先选无声轨,可直接指定只取视频的视频流、MP3的音频流:
ffmpeg -i input.mp4 -i input2.mp3 -c:v copy -c:a aac -b:a 256k -map 0:v:0 -map 1:a:0 output.mp4
前置排查项
执行命令前可先做基础校验,避免输入文件本身的问题:
- 直接播放
input2.mp3文件,确认音频本身无损坏、有声音 - 播放原
input.mp4文件,确认本身是否自带音轨、音轨是否正常
内容的提问来源于stack exchange,提问作者Iman Amani
相关产品推荐
相关产品推荐

