菜鸟科技网

Linux 录音命令有哪些?如何使用?

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

Linux 录音命令有哪些?如何使用?-图1
(图片来源网络,侵删)

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. 录制1分钟立体声音频,保存为test.wav
    arecord -D plughw:0 -f cd -c 2 -d 60 test.wav
  2. 录制单声道音频,采样率为22050Hz:
    arecord -f S16_LE -c 1 -r 22050 voice.wav

ffmpeg:多媒体处理工具

ffmpeg是一款强大的多媒体处理工具,支持音频、视频的录制、转换和流处理,其录音功能灵活,可支持多种编码格式和输入源,基本语法为:

Linux 录音命令有哪些?如何使用?-图2
(图片来源网络,侵删)
ffmpeg -f alsa -i 设备名 输出文件

关键参数

  • -f alsa:指定使用ALSA作为输入格式。
  • -i:指定输入设备,如-i hw:1-i default(默认设备)。
  • -acodec:设置音频编码器,如-acodec pcm_s16le(PCM编码)。
  • -ar:设置采样率,-ar 44100
  • -t:录音时长(秒),如-t 30

实际案例

  1. 录制系统默认音频设备输出,保存为MP3格式:
    ffmpeg -f alsa -i default -t 60 output.mp3
  2. 录制高质量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 [选项] 输出文件

常用参数

Linux 录音命令有哪些?如何使用?-图3
(图片来源网络,侵删)
  • -c:声道数,-c 1为单声道。
  • -r:采样率,-r 44100
  • -b:采样位深度,-b 16
  • -t:文件格式,如-t wav-t ogg
  • trim:修剪音频,如trim 0 10(截取前10秒)。

实际案例

  1. 录制10秒单声道WAV音频:
    rec -c 1 -r 22050 -b 16 -t wav sample.wav trim 0 10
  2. 录制并实时监听(通过play命令回放):
    rec -c 2 output.wav & play -c 2 output.wav

其他工具与高级用法

  1. 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

    此命令适用于录制系统播放的音频(立体声混音)。

  2. 定时录音
    结合atcron实现定时录音,例如每天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: 此错误通常表示设备被其他程序占用,可通过以下步骤解决:

  1. 使用lsof | grep pcm查看占用音频进程,终止相关进程(如kill PID)。
  2. 检查设备权限,确保用户在audio组中(执行usermod -a -G audio $USER后重新登录)。
  3. 若使用虚拟机,关闭虚拟机音频输入或重置声卡设备。

Q2: 如何在Linux中录制系统内部声音(如应用播放的音频)?
A2: 需通过PulseAudio的监控设备捕获,步骤如下:

  1. 安装pavucontrolsudo apt install pavucontrol),打开后切换到“Input Devices”选项卡。
  2. 找到目标应用的输出设备,将其监控源(Monitor)设置为录音设备。
  3. 使用parecffmpeg结合监控设备录音,
    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”选项以支持监控。

分享:
扫描分享到社交APP
上一篇
下一篇