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


14

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

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

Answers:



12

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

sox -t waveaudio -d new-file.wav

感谢更新。希望我能对任何将来的探索者“贴”一下。
汤姆·赖特

@TomWright您可以选择此答案作为新的最佳答案。
Hashim

4

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

fmedia --record --out=Recording.wav

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

在录制时,fmedia会显示信号的声音大小,例如:

g:\fmedia>fmedia --record --out=myrec.flac
fmedia v0.10
0:19  [========..] -7.89dB / -1.31dB

支持的格式为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

2

FFmpeg

在进行格式转换时,ffmpeg可以做更多的事情。(即过滤器,I / O设备控制)。对于这个特定问题,我将重点介绍输入设备


列出所有输入设备:
列出DirectShow的所有输入设备。这也要求,这就是为什么在文件名null中给出。

ffmpeg -list_devices true -f dshow -i null

从输入装置记录的音频:
保存30音频数据的秒(PCM数据)DirectShow的的输入。
替换:DEVICE_ID用您从上一条命令获得的ID列表中的所需ID 替换。

ffmpeg -f dshow -t 30 -i "audio=DEVICE_NAME" out.wav

FFmpeg的对文档DSHOW


1

这是旧的,但可以替代

LiveInCode

该程序将来自线路输入或麦克风的现场音频直接编码为Ogg Vorbis,MP3,FLAC,Speex和其他格式。

当前版本仅对Ogg Vorbis和Speex具有内置支持。这意味着您也可以使用任何其他编码器,但是对于Ogg Vorbis和Speex以外的编码器,您需要手动指定命令行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.