1. Home
  2. Windows Tips
  3. Record system sound with ffmpeg on windows 10

How to record system sound with FFMPEG on Windows 10

Recording audio output i.e. audio from the speakers is a tricky process. You can’t just record it as input detected by the mic because there will be quite a bit of noise in the recording. There are of course ways to do it, and apps that allow you to. We’ve covered how you can record audio from a specific app with Audacity however, this works for a specific app. If you’d like to record any and all system sound, it’s best to use FFMPEG. The tool is a command-line tool and it can be a bit daunting to get started with it but, it’s one of the easiest ways to record system sound.

Before you can start, make sure ‘Stereo Mix’ shows up as a device under sounds.

Record system sound with FFMPEG

Download FFMPEG. You can add it to the PATH if you want but it isn’t necessary. Open File Explorer and navigate to the zip file you downloaded. Extract it, and in the extracted folder, go to the ‘bin’ folder. Click inside the location bar in File Explorer and enter ‘cmd’. Tap Enter. This will open a new Command Prompt window that is already in that directory.

Next, open a new File Explorer window and create a folder where you will save the audio file that is created. This folder can be created anywhere you like. You do not have to create it inside the FFMPEG folder. It can be on a different drive or an external drive.

Return to the Command Prompt window, and run the following command.

ffmpeg -list_devices true -f dshow -i dummy

This command will return a list of devices that can record or output audio. This will include speakers, mics, and webcams. In this list, look for the name of the audio device i.e, your speakers that you want to record sound from. Copy it to your clipboard and paste it somewhere you will be able to retrieve it easily. In the screenshot below, the audio device that I’m going to record sound from is called ‘Stereo Mix (Realtek Audio)’.

Now that you have the device name, use the following command to begin the recording. Change the name of the device to whichever you want to record, and the path and name of file to whatever you like. You can also change the file format to a different one that FFMPEG supports.

Command

ffmpeg -f dshow -i audio="Device name" path-to-file\file-name.mp3

Example

ffmpeg -f dshow -i audio="Stereo Mix (Realtek Audio)" C:\Users\fatiw\Desktop\Audio\output.mp3

The recording will begin right away. You can minimize the Command Prompt window if you like but do not close it. When you want to stop the recording, return to the Command Prompt window and tap the Ctrl+C keyboard shortcut.

Open the folder that you specified in the path and you will see the audio file there.

2 Comments

  1. This is great stuff.

    However, I wish to record as in you example for 18 hours and 36 minutes, with track breaks, and some type of vbr, preferably voice quality at around 42 kps. or aac around 21 kps, since aac is the only significant improvement over mp3 worth ditching compatibility. Opus isnt enough improvement.

    Anyway, I do not know enough switches for ffmeg to force to mono, resample etc. a 20 or 80 hour wav file would be too hard on my hardrive. I know how to split with ffmeg, I think. But splitting as I record would be better and knowing switches for the codecs, since I am strickly voice and not in need or desire big bit rates.