前言

在使用ubuntu22.04系统上使用ffmpeg采集音频,发现播放时声音很小,经过分析,发现是录音音量被静音了,以下是分析过程。

一、确保系统的录音设备是正常工作的

1、检查vmware的设置,声卡设备是出于连接状态;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、使用arecord查看当前所有的录音设备

# 查看所有录音设备
arecord -l

在这里插入图片描述

  • card 0: AudioPCI [Ensoniq AudioPCI]:系统检测到一张名为 “Ensoniq AudioPCI” 的声卡(编号为0)。
  • device 0: ES1371/1 [ES1371 DAC2/ADC]:该声卡有一个设备(编号0),型号为 ES1371,支持 ADC(模拟数字转换,即录音功能)。
  • Subdevice #0: subdevice #0:子设备正常启用。

arecord -l有输出,说明系统支持录音功能。

二、录音声音小的问题分析

1、先确认播放音量是否被设置的很小;如果很小,适当调大之后再测试;
在这里插入图片描述
2、如果声音还是很小,查看输入音量设置是否过低;
amixer:ALSA(Advanced Linux Sound Architecture)的音量控制工具。

# 查询输入设备的音量设置
# Mic:麦克风输入的直接控制(可独立于`Capture`)
# Capture:控制录音输入的音量
amixer -c 0 scontrols | grep 'Mic\|Capture'
amixer -c 0 sget 'Capture'

在这里插入图片描述
从上图可以看到:

  • Front Left 和 Front Right 的 Capture 值均为 0,表示录音通道的音量增益为 0%。
  • [on] 表示通道已启用,但音量被归零。

Capture 音量设置为 0(0%),这会导致录音声音极其微弱甚至无声,解决办法如下:

# 取值范围限制:Limits: Capture 0 - 15 表示最大可设置为 15(对应 100% 或更高分贝增益)。
amixer -c 0 set 'Capture' 15  # 设置为最大值(15 = 100%)

或者分别调节左右声道:

amixer -c 0 set 'Capture' 15,15  # 左,右

在这里插入图片描述
3、重新录制,播放声音变大,问题解决。

# 采集音频
ffmpeg -f alsa -i hw:0,0 output.wav

# 播放音频
ffplay output.wav

完~

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐