在Linux系统中,录音功能可以通过多种命令行工具实现,这些工具功能各异,适用于不同的录音场景,如简单录音、高质量音频录制、流媒体捕获等,本文将详细介绍Linux环境下常用的录音命令,包括arecord
、ffmpeg
、rec
(sox工具包)等,涵盖其基本用法、参数选项及实际应用案例。

arecord
:ALSA录音工具
arecord
是ALSA(Advanced Linux Sound Architecture)系统自带的命令行录音工具,适用于快速录制PCM音频数据,尤其适合处理声卡设备相关的录音任务,其基本语法为:
arecord [选项] 文件名.wav
常用参数说明:
-D
:指定声卡设备,如-D plughw:1
表示使用第二个硬件设备。-f
:设置采样格式,如-f cd
(44100Hz,16位,立体声)或-f dat
(48000Hz,16位,立体声)。-c
:设置声道数,-c 1
为单声道,-c 2
为立体声。-r
:设置采样率,如-r 44100
。-d
:录音时长(秒),如-d 60
表示录音1分钟。
实际案例:
- 录制1分钟立体声音频,保存为
test.wav
:arecord -D plughw:0 -f cd -c 2 -d 60 test.wav
- 录制单声道音频,采样率为22050Hz:
arecord -f S16_LE -c 1 -r 22050 voice.wav
ffmpeg
:多媒体处理工具
ffmpeg
是一款强大的多媒体处理工具,支持音频、视频的录制、转换和流处理,其录音功能灵活,可支持多种编码格式和输入源,基本语法为:

ffmpeg -f alsa -i 设备名 输出文件
关键参数:
-f alsa
:指定使用ALSA作为输入格式。-i
:指定输入设备,如-i hw:1
或-i default
(默认设备)。-acodec
:设置音频编码器,如-acodec pcm_s16le
(PCM编码)。-ar
:设置采样率,-ar 44100
。-t
:录音时长(秒),如-t 30
。
实际案例:
- 录制系统默认音频设备输出,保存为MP3格式:
ffmpeg -f alsa -i default -t 60 output.mp3
- 录制高质量PCM音频并转换为FLAC:
ffmpeg -f alsa -i hw:0 -f s16le -ac 2 -ar 48000 -t 120 raw_audio.pcm ffmpeg -f s16le -ac 2 -ar 48000 -i raw_audio.pcm converted.flac
rec
(Sox工具包):多功能录音工具
rec
是Sox(Sound eXchange)工具包的一部分,支持多种音频格式和特效处理,语法简洁,基本用法为:
rec [选项] 输出文件
常用参数:

-c
:声道数,-c 1
为单声道。-r
:采样率,-r 44100
。-b
:采样位深度,-b 16
。-t
:文件格式,如-t wav
或-t ogg
。trim
:修剪音频,如trim 0 10
(截取前10秒)。
实际案例:
- 录制10秒单声道WAV音频:
rec -c 1 -r 22050 -b 16 -t wav sample.wav trim 0 10
- 录制并实时监听(通过
play
命令回放):rec -c 2 output.wav & play -c 2 output.wav
其他工具与高级用法
-
parec
(PulseAudio):
若系统使用PulseAudio,可通过parec
捕获音频流:parec -d alsa_output.pci-0000_00_1b.0.analog-stereo.monitor | ffmpeg -f s16le -ar 44100 -ac 2 -i - output.wav
此命令适用于录制系统播放的音频(立体声混音)。
-
定时录音:
结合at
或cron
实现定时录音,例如每天14:00录音30分钟:echo "arecord -D default -f cd -c 2 -d 1800 daily.wav" | at 14:00
录音工具对比
工具 | 优点 | 缺点 | 适用场景 |
---|---|---|---|
arecord |
简单直接,ALSA原生支持 | 格式支持有限,无高级编码功能 | 快速PCM录音 |
ffmpeg |
支持多格式/编码,功能强大 | 参数复杂,资源占用较高 | 多媒体处理、流媒体录制 |
rec |
语法简洁,支持实时特效 | 依赖Sox包,部分高级功能需配置 | 简单录音与音频处理 |
相关问答FAQs
Q1: 如何解决Linux录音时出现“Device or resource busy”错误?
A1: 此错误通常表示设备被其他程序占用,可通过以下步骤解决:
- 使用
lsof | grep pcm
查看占用音频进程,终止相关进程(如kill PID
)。 - 检查设备权限,确保用户在
audio
组中(执行usermod -a -G audio $USER
后重新登录)。 - 若使用虚拟机,关闭虚拟机音频输入或重置声卡设备。
Q2: 如何在Linux中录制系统内部声音(如应用播放的音频)?
A2: 需通过PulseAudio的监控设备捕获,步骤如下:
- 安装
pavucontrol
(sudo apt install pavucontrol
),打开后切换到“Input Devices”选项卡。 - 找到目标应用的输出设备,将其监控源(Monitor)设置为录音设备。
- 使用
parec
或ffmpeg
结合监控设备录音,parec -d alsa_output.pci-0000_00_1b.0.analog-stereo.monitor | ffmpeg -f s16le -ar 44100 -ac 2 -i - internal_audio.wav
注意:部分系统需启用“Allow All”选项以支持监控。