168

Is there a program for Ubuntu that can record sounds of only the output of the speaker and not any voices from outside the PC?

Zanna
  • 72,312
AmirRazoR
  • 3,417

6 Answers6

197

If I'm not wrong, then I guess you are talking about recording "Stereo Mix" or loopback Output.

In layman's terms, Recording Stereo Mix means recording sound from speaker output.

Here's how to do it:

  1. Install pavucontrol from Ubuntu Software Center.
  2. Install audacity from Ubuntu Software Center.
  3. Select pulse* as recording device in Audacity.
  4. Click Record Button.
  5. Open PulseAudio Volume Control (Search For PulseAudio Volume Control in Dash).
  6. Select Recording Tab.
  7. Now You Should see ALSA plug-in [audacity]. If you do not see ALSA plug-in [audacity], make sure you have clicked Record Button in audacity. You should be running recording in audacity while performing next step.
  8. Select "Monitor from *". See screen shot. Screen shot of PulseAudio Volume Control
  9. Now you should be able to record the sound you hear from speaker or headphones.

Note: Tested in Ubuntu 12.10
Reference PulseAudio - Ubuntu Wiki

113

A very small, bare-bones software that does exactly what you need, is called (rather obviously) "Audio Recorder", installed like this:

sudo add-apt-repository ppa:audio-recorder/ppa
sudo apt-get update && sudo apt-get install audio-recorder

Files are saved automatically to the ~/Audio directory.

Ubuntu audio-recorder

David Foerster
  • 36,890
  • 56
  • 97
  • 151
user78915
  • 1,139
62

Command Line

  1. Install sudo apt-get install pulseaudio-utils lame mpg123

  2. Search for your speakers and tap into your speaker's monitor stream:

    pacmd list-sinks | grep -e 'name:' -e 'index' -e 'Speakers'

    or

    pacmd list-sources | grep -e 'name:' -e 'index' -e 'Speakers'

enter image description here

  1. Play anything you want to record and type in parec -d alsa_output.pci-0000_00_1f.3.analog-stereo.monitor | lame -r -V0 - out.mp3

  2. Hit ctrl+c to stop recording and play the recorded file mpg123 out.mp3

Minimalistic GUI

A very simple GUI to do this, pull all the files from here and run install.sh Goto Dash and search for Record Speakers

xerostomus
  • 1,060
b-ak
  • 4,420
9

I just made a small alias to record the PC audio output with one single command and stored in opus format instead of mp3.

  1. Install the required packages:

    sudo apt-get install pulseaudio-utils opus-tools
    
  2. Edit your .bashrc file:

    nano ~/.bashrc
    

    Copy the line below and append it to the end of your ~.bashrc:

    alias recaudio="parec --monitor-stream="$(pacmd list-sink-inputs | awk '$1 == "index:" {print $2}')" | opusenc --raw - $(xdg-user-dir MUSIC)/recording-$(date +"%F_%H-%M-%S").opus"
    

    Save the file by pressing Ctrl+X (to close nano), then Y (for "Yes") and Enter (to confirm the file name).

  3. Now load the new ~/.bashrc (or simply open a new terminal):

    source $HOME/.bashrc
    

Then try, just type

recaudio

It will create a file in your Music home folder called recording-[DATE].opus.

Enjoy.

Byte Commander
  • 110,243
5

For those stumbling over this and using pipewire instead of pulseaudio:

pw-record -P '{ stream.capture.sink=true }' test.flac

This would record from the current audio output. (found at https://www.reddit.com/r/archlinux/comments/x2kej0/recording_output_audio_using_pipewire/ )

delf
  • 411
3

Note: Okay this answer might seem like a cop-out but it works and its great software, especially if you want to additionally record your speaker output and microphone output at the same time. Or if you also need to video record your computer screen.

Anyways, been pulling my hair out forever googling for an answer that is simple to use and provides everything I need.

Install and use Open Broadcaster Software (OBS). Seriously, that's it. Googling it should bring up installation instructions tailored to your machine.

Just record with OBS and it will just make a video with your audio in it. If you only want to record audio, just record without a video source and it will make a blank video with your recording. If you want to record only speaker output and not the mic, simply mute the microphone with a press of a button. Intuitive.

(Note this gives you a video file. It doesn't bother me but if you need an audio file like an mp3 you would have to figure out how to convert the video file you made into an audio file (I don't know how to do that, but there are plenty of resources out there that tell you).)