BlogLinux

How to Record System Audio on Linux (PipeWire, PulseAudio)

Linux sound servers give every output device a monitor you can record. Here are the commands and app settings that capture it, why a recording comes out silent, and the option for meetings.

Reline Team7 min read
In this article
  1. What you are recording: the monitor
  2. Your options at a glance
  3. Method 1: parecord in a terminal
  4. Method 2: pw-record on PipeWire
  5. Method 3: Audacity with pavucontrol
  6. Method 4: OBS Studio for both sides at once
  7. If the recording is silent
  8. Recording a meeting: both sides and a live transcript with Reline (Linux beta)
  9. Tell people you are recording
  10. Sources

To record system audio on Linux, record the monitor of your output device: the copy of everything your computer plays. In a terminal, run parecord -d @DEFAULT_MONITOR@ call.wav (PulseAudio, or PipeWire with pipewire-pulse). Audacity and OBS can record it too. For a meeting transcript, Reline (Linux beta) records your mic and system audio and transcribes live.

What you are recording: the monitor

Linux sound servers offer a monitor of each output device: a recordable copy of what that output plays. Record the monitor and you get the system audio, including the other people on a call, but not your own microphone. Record the microphone and you get only your side. To get both, you need a tool that records two sources at once, such as OBS or Reline.

A Linux desktop usually runs one of two sound servers: PipeWire or the older PulseAudio. PipeWire ships pipewire-pulse, which PipeWire’s documentation calls a drop-in replacement for the PulseAudio daemon, so the PulseAudio tools in this guide (parecord, pactl and pavucontrol) are meant to work on both.

Your options at a glance

MethodSound serverWhat it recordsWhat you get
parecord (terminal)PulseAudio, or PipeWire with pipewire-pulseYour default outputAn audio file
pw-record (terminal)PipeWireYour default outputAn audio file
Audacity with pavucontrolPulseAudio (Audacity’s guide)The output you pickAudio you can edit
OBS StudioALSA or PulseAudio sourcesDesktop audio and your microphone by defaultA recording file, no transcript
Reline desktop app, Linux (beta)PulseAudio, or PipeWire with pipewire-pulseYour microphone and your default outputA live transcript, an AI summary and the audio

Method 1: parecord in a terminal

parecord is PulseAudio’s command-line recorder. Its manual lists three special device names, @DEFAULT_SINK@, @DEFAULT_SOURCE@ and @DEFAULT_MONITOR@, and the last one is the monitor of your default output.

  1. Make the sound you want play through your default output. To see which output that is, run pactl get-default-sink: it prints the name of the default output.
  2. Start recording: parecord -d @DEFAULT_MONITOR@ call.wav
  3. Press Ctrl+C to stop. The file is in the folder you ran the command from.

This records what your computer plays and nothing else: your microphone is not in the file.

Method 2: pw-record on PipeWire

pw-record is PipeWire’s own recorder. On its own it records from an input, usually your microphone. To record the output instead, set the stream property stream.capture.sink: PipeWire documents it as trying to capture the output of a sink instead of a source. The -P option of pw-record takes extra stream properties as a JSON object.

  1. Start recording the default output: pw-record -P '{ "stream.capture.sink": true }' call.wav
  2. Press Ctrl+C to stop.

Not sure which sound server you run? Start with parecord: it is PulseAudio’s tool, and pipewire-pulse exists so that tools like it work on PipeWire too.

Method 3: Audacity with pavucontrol

Audacity’s manual records computer playback on Linux by pointing Audacity at PulseAudio and picking the monitor in PulseAudio Volume Control (pavucontrol), a mixer for PulseAudio.

  1. Install pavucontrol from your distribution’s packages.
  2. In Audacity’s Audio Setup, set the host to ALSA and the recording device to pulse (on some systems it is called default).
  3. Click Start Monitoring so Audacity’s recording meter is live.
  4. Open PulseAudio Volume Control, go to the Recording tab and, next to Audacity, set Capture from to the Monitor option of the output your app plays through.
  5. Start the sound, then set the sliders so Audacity’s meter stays below 0 dB; Audacity suggests about -6 dB.
  6. Press Record in Audacity.
  • Do not press Mute in PulseAudio Volume Control: Audacity’s manual says Audacity then records silence.
  • Leave audible input monitoring off (Transport menu).
  • It records all desktop audio, notification sounds included, and only the output: your microphone is not in it.

Audacity’s pages do not mention PipeWire. On a PipeWire desktop, pavucontrol and the pulse device go through pipewire-pulse, the PulseAudio replacement that comes with PipeWire.

Method 4: OBS Studio for both sides at once

OBS Studio’s quick start guide says it captures your desktop audio and your microphone by default, which makes it the simple way to get both sides of a call into one file. On Linux, OBS’s audio sources are its ALSA and PulseAudio capture devices.

  1. Install OBS Studio and open it.
  2. If an audio meter does not move, or the wrong device is captured, open Settings > Audio and pick the devices yourself.
  3. Check Settings > Output, then click Start Recording in the Controls dock.

You get a recording file, with no transcript.

If the recording is silent

  • The output is muted. A muted output can reach the monitor as silence: Audacity’s manual warns about the Mute button, and in our own Linux tests a muted output delivered digital silence.
  • The sound plays through another device. If your headset is not the default output, @DEFAULT_MONITOR@ and stream.capture.sink record the wrong one. Make the headset your default output in your sound settings, or pick its monitor in pavucontrol.
  • Nothing was playing yet. Audacity’s guide says to start the sound first.
  • Neither PulseAudio nor pipewire-pulse is running. parecord, pavucontrol and Reline talk to one of them; without it, they cannot record what your computer plays, and Reline records your microphone only.

Recording a meeting: both sides and a live transcript with Reline (Linux beta)

The tools above leave you with a file. If what you are playing is a meeting, you probably want words, not a WAV. Reline ships a Linux desktop app (beta) that records your microphone and your system audio and transcribes the call live as people talk, in 60+ languages. Under the hood it does what parecord does: it records the monitor of your default output through PulseAudio or PipeWire (via pipewire-pulse), plus your microphone. We verified the pipeline on Ubuntu 24.04. No bot joins the call, and the full app also runs in the browser.

  1. Download the Reline Linux desktop app (beta), an AppImage for x64 and Arm64, and sign in. The Free plan includes 10 hours of transcription.
  2. Join the call in its app or in a browser tab, with the sound playing through your default output, unmuted.
  3. Tell everyone you are recording for notes, and record only if they agree.
  4. Press Record in Reline. The transcript appears as people talk.
  5. Stop when the call ends. You get the transcript, an AI summary next to it and the kept audio, with a play button on every transcript line.

Know the limits before you count on it. Reline transcribes live while it records: it cannot transcribe a file you already made with parecord, pw-record, Audacity or OBS, and there is no file upload. It records audio, not video. Like parecord, it takes everything your default output plays, so pause music and silence notifications. Your voice and the call are labeled Me and Other by which stream the sound came in on; the beta Separate speakers option numbers the voices on the call side, and you name them yourself. Capture happens on your computer, but transcription, AI summaries and storage run in the cloud.

Tell people you are recording

A recorder on your computer adds nothing to the call. parecord, pw-record, Audacity, OBS and Reline play no announcement and show no notice, so the notice is on you. Several US states, California among them, require every party to agree before a call is recorded, and in the EU you need a lawful basis under the GDPR and should say why you record. Rules differ by country and state, so check the rules where everyone on the call is. The simple habit: say at the start of the call that you are recording for notes, and stop if someone objects. For music and video, Audacity’s manual adds that copyright or a website’s rules may stop you recording or sharing it.

Sources

  • PipeWire documentation, "pw-cat" manual page (pw-record): docs.pipewire.org
  • PipeWire documentation, "Key Names" (stream.capture.sink): docs.pipewire.org
  • PipeWire documentation, "pipewire-pulse" manual page: docs.pipewire.org
  • PulseAudio manual pages pacat(1) (parecord) and pactl(1): github.com/pulseaudio/pulseaudio (official mirror)
  • PulseAudio Volume Control (pavucontrol): freedesktop.org
  • Audacity Manual, "Tutorial - Recording Computer Playback on Linux": manual.audacityteam.org
  • Audacity Support, "Recording desktop audio": support.audacityteam.org
  • OBS Studio, "Quick Start Guide" and "Audio Sources": obsproject.com
FAQ

Common questions

How do I record system audio on Linux?
Record the monitor of your output device. In a terminal, parecord -d @DEFAULT_MONITOR@ call.wav records your default output on PulseAudio, or on PipeWire through pipewire-pulse. On PipeWire, pw-record with the stream.capture.sink property does the same. Audacity with pavucontrol and OBS Studio can record it too.
How do I record computer audio with Audacity on Linux?
Set Audacity’s host to ALSA and the recording device to pulse, click Start Monitoring, then in PulseAudio Volume Control’s Recording tab set Capture from to the Monitor of the output your app plays through. Do not press Mute there: Audacity’s manual says it then records silence.
How do I record my microphone and system audio at the same time on Linux?
parecord, pw-record and Audacity’s monitor setup record only what your computer plays. OBS Studio captures desktop audio and your microphone by default. For meetings, Reline (Linux beta) records both and transcribes the call live.
Why is my system audio recording silent on Linux?
Usually the output is muted, the sound plays through a device that is not your default output, or nothing was playing when you started. Unmute the output, make the device you hear the sound on your default output, and start the sound before you record.
Can Reline transcribe a recording I already made on Linux?
No. Reline transcribes live while it records and has no file upload, so it cannot transcribe a file from parecord, pw-record, Audacity or OBS. It helps from your next call on.
Does Reline record system audio on Linux?
Yes, in the Linux desktop app (beta). It records your microphone and your default output through PulseAudio or PipeWire (via pipewire-pulse), with no bot in the call. Transcription, AI summaries and storage run in the cloud, and the full app also runs in the browser.
Ready when you are

Stop taking notes.Start shipping outcomes.

Free forever for individuals. Five minutes to install. Your next meeting writes its own notes.