16

Is there an application capable of recording sound that I can run from the command line on XP?

Ideally I'd start it with one command and stop it with another. Or I could specify a duration with the starting command.

5 Answers 5

10

You can use SoX package.

rec recorded_track.wav 00:05

Records for 5 minutes.

More documentation on SoX manpage.

2
  • 3
    SOX doesn't appear to ship with "rec" command anymore.
    – PeterX
    Oct 15, 2015 at 13:23
  • 1
    @peterx See answer from @this-lau sox -t waveaudio −d new-file.wav Apr 12, 2018 at 6:39
14

rec is no longer provided in the SoX Windows package. Instead you can use this command line:

sox -t waveaudio -d new-file.wav
3
  • Thanks for the update. Wish I could "sticky" this for any future explorers.
    – Tom Wright
    Aug 3, 2016 at 9:27
  • @TomWright You can select this answer as the new best answer. Mar 28, 2019 at 6:33
  • And to record 10 seconds use sox -t waveaudio -d new-file.wav trim 0 10 superuser.com/questions/889912/…
    – cwd
    Nov 18 at 15:30
6

To record sound using command line on Windows you can use fmedia:

fmedia --record --out=Recording.wav

You can stop recording at any time by pressing Ctrl+C.

While recording, fmedia shows how loud the signal is, for example:

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

Supported formats are WAV, FLAC, OGG and MP3. Output to WAV is the fastest. However, FLAC compression is quite fast too, so you probably won't notice any difference in CPU usage.


If you want to capture sound from a specific device (not just the default one):

Step 1. Use --list-dev switch to show all available devices.

Step 2. Pick a device you want to use and call fmedia with --dev-capture argument.

For example, start recording from a specific device - Microphone:

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
4

FFmpeg, besides conversion can do a lot more, Device I/O is our main focus.


Input devices are specific to host systems, for Windows FFmpeg uses DirectShow API for capturing both audio and video. The following retrieves a listing of available input devices visible to dshow.

ffmpeg -list_devices true -f dshow -i null

Usually, -sources following device name is used for listing input streams but for dshow it is quite weird, I don't know why.


The following captures 30 seconds of audio and saves it as a FLAC file, DEVICE_NAME is a placeholder for the name of the device reported by DirectShow.

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

FFmpeg Documentation on dshow.

1
  • Trying to use a webcam as microphone, I get the following error: Could not find output pin from audio only capture device.
    – ner0
    May 20, 2021 at 21:30
1

This is old but might be an alternative

LiveInCode

This program encodes live audio from line-in or microphone directly into Ogg Vorbis, MP3, FLAC, Speex and other formats.

The current version only has built-in support for Ogg Vorbis and Speex. It means you can use any other encoders too, but for encoders other than Ogg Vorbis and Speex you'll need to manually specify the command-line.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.