如何从 Windows 命令行录制声音?

Tom*_*ght 16 audio recording command-line windows-xp

是否有可以在 XP 上从命令行运行的能够录制声音的应用程序?

理想情况下,我会用一个命令启动它并用另一个命令停止它。或者我可以使用开始命令指定持续时间。

lau*_*ent 12

rec不再在 SoX Windows 包中提供。相反,您可以使用此命令行:

sox -t waveaudio -d new-file.wav
Run Code Online (Sandbox Code Playgroud)


Sat*_*hat 10

您可以使用SoX 包

rec recorded_track.wav 00:05

记录 5 分钟。

有关SoX 联机帮助页的更多文档。

  • SOX 似乎不再附带“rec”命令。 (3认同)

bso*_*und 7

FFmpeg,除了转换可以做更多的事情之外,Device I/O 是我们的主要关注点。


输入设备特定于主机系统,对于 Windows,FFmpeg 使用DirectShow API来捕获音频和视频。下面的代码检索 dshow 可见的可用输入设备的列表。

ffmpeg -list_devices true -f dshow -i null
Run Code Online (Sandbox Code Playgroud)

通常,-sources以下设备名称用于列出输入流,但对于 dshow 来说它很奇怪,我不知道为什么。


下面捕获 30 秒的音频并将其保存为 FLAC 文件,DEVICE_NAME是 DirectShow 报告的设备名称的占位符。

ffmpeg -f dshow -t 30 -i "audio=DEVICE_NAME" out.flac
Run Code Online (Sandbox Code Playgroud)

dshow上的FFmpeg文档。


小智 5

要在 Windows 上使用命令行录制声音,您可以使用fmedia

fmedia --record --out=Recording.wav
Run Code Online (Sandbox Code Playgroud)

您可以随时按 停止录音Ctrl+C

录音时,fmedia 会显示信号的响度,例如:

g:\fmedia>fmedia --record --out=myrec.flac
fmedia v0.10
0:19  [========..] -7.89dB / -1.31dB
Run Code Online (Sandbox Code Playgroud)

支持的格式有 WAV、FLAC、OGG 和 MP3。输出到 WAV 是最快的。但是,FLAC 压缩也非常快,因此您可能不会注意到 CPU 使用率的任何差异。


如果您想从特定设备(不仅仅是默认设备)捕获声音:

步骤 1. 使用--list-dev开关显示所有可用设备。

步骤 2. 选择您要使用的设备并使用--dev-capture参数调用 fmedia 。

例如,从特定设备开始录音 - 麦克风:

C:\>fmedia --list-dev
fmedia v0.10
Playback:
device #1: Realtek Digital Output (Realtek High Definition Audio)
device #2: Speakers (Realtek High Definition Audio)

Capture:
device #1: Stereo Mix (Realtek High Definition Audio)
device #2: Microphone (Realtek High Definition Audio)
device #3: Line In (Realtek High Definition Audio)

C:\>fmedia --record --out=Recording.wav --dev-capture=2
Run Code Online (Sandbox Code Playgroud)