MacOS下ffmpeg录制麦克风音频有爆音、音质劣于sox问题求助
MacOS下ffmpeg录制麦克风爆音解决方案
问题根源:你当前的ffmpeg命令未指定与麦克风硬件匹配的输入参数,avfoundation默认请求的声道数、采样率与你的G935 Gaming Headset硬件支持的参数不匹配,格式转换过程中出现削波导致爆音。
修正后的录制命令
ffmpeg -f avfoundation -audio_channels 1 -sample_rate 48000 -audio_device_index 2 -i "none:" -c:a pcm_s32le alexspeaking.wav -y -loglevel debug
参数调整说明
- 新增
-audio_channels 1:强制指定单声道输入,匹配该麦克风原生输出的声道数,避免ffmpeg默认请求双声道被硬件拒绝后引发的格式转换异常 - 新增
-sample_rate 48000:强制指定48kHz采样率,和硬件原生支持的采样率完全对齐,避免采样率转换带来的失真 - 输入参数从
"none:-"简化为"none:",avfoundation关闭视频输入时不需要额外加短横线,避免不必要的输入流识别异常 - 可选补充
-audio_bit_depth 32参数,明确指定32位采样深度,和硬件输出的编码格式完全匹配,进一步减少转换损耗
额外排查点
如果调整参数后仍有爆音,检查MacOS系统设置中该麦克风的输入增益,不要超过80%。ffmpeg默认不会对输入音频做任何限幅处理,硬件增益过高时说话的大音量信号会直接过载削波,而sox内部默认带了轻微的限幅逻辑,所以不会出现明显爆音。
内容的提问来源于stack exchange,提问作者user2355330
相关产品推荐
相关产品推荐

