Recording the sound coming from your Linux computer should be easy. After all, you can hear it. The computer clearly knows it exists. Surely there is a button labeled “Record Whatever Is Making That Noise,” right?
Not quite. Linux audio is powerful, flexible, and occasionally as approachable as a control panel from a submarine. The good news is that modern systems using PipeWire or PulseAudio can capture speaker output without a physical cable, a second computer, or a microphone pointed dramatically at your speakers.
This guide explains how to record speaker output on Linux with Audacity, PulseAudio Volume Control, FFmpeg, OBS Studio, and native PipeWire tools. It also covers common problems such as silent recordings, missing monitor devices, distorted audio, and accidental notification sounds.
What Does “Recording Speaker Output” Mean?
Recording speaker output means capturing the digital audio stream that applications send to your output device. That output device might be built-in laptop speakers, wired headphones, a USB interface, an HDMI display, or a Bluetooth headset.
This process is also called:
- Recording desktop audio
- Capturing system audio
- Loopback recording
- Recording a monitor source
- Capturing “what you hear”
The audio is captured before it reaches the physical speakers. As a result, the recording is normally much cleaner than anything recorded through a microphone. Room noise, keyboard thumps, barking dogs, and your neighbor’s enthusiasm for power tools stay out of the file.
Understand the Linux Audio Stack First
Most Linux desktops use one of two sound servers: PipeWire or PulseAudio. PipeWire is now common on current Fedora, Ubuntu, Debian, Arch-based, and other desktop distributions. It often provides a PulseAudio-compatible interface, which is why commands and applications labeled “PulseAudio” may still work perfectly on a PipeWire system.
Check Which Audio Server You Are Using
Open a terminal and run:
A PipeWire system may return something similar to:
A traditional PulseAudio installation will normally identify itself simply as PulseAudio.
You can also check for PipeWire devices and streams with:
If that command displays sections for audio sinks, sources, devices, and streams, PipeWire and WirePlumber are active.
What Is a Monitor Source?
Linux audio systems usually expose each playback device as a sink. A sink receives sound from applications and sends it to speakers or headphones. The corresponding monitor source lets a recording program listen to everything being sent into that sink.
For example, your laptop speakers may appear as an output called “Built-in Audio Analog Stereo.” Its recording counterpart may be named “Monitor of Built-in Audio Analog Stereo.” Selecting the monitor rather than the microphone is the key to recording Linux system audio.
What You Need Before Recording
You do not need every tool in this article. Choose the combination that matches your workflow:
- Audacity: Best for recording, trimming, cleaning, and exporting audio through a graphical interface.
- pavucontrol: Best for choosing which monitor source a recording application receives.
- FFmpeg: Best for scripts, automation, scheduled captures, and precise output settings.
- parecord: Best for a fast terminal recording with minimal configuration.
- OBS Studio: Best when desktop audio must accompany a screen, webcam, presentation, or game recording.
- pw-record: Best for native PipeWire capture and advanced audio routing.
Install the programs through your distribution’s normal package manager. Common package names include audacity, pavucontrol, ffmpeg, pulseaudio-utils, and obs-studio. Package names can vary slightly between distributions.
Method 1: Record Speaker Output With Audacity
Audacity is the friendliest option when you want to see the waveform, remove unwanted sections, normalize volume, or export the finished recording into another format.
Step 1: Open Audacity and Select the Audio Backend
Launch Audacity and open its Audio Setup menu. On many Linux systems, choose ALSA as the host and select pulse or default as the recording device.
Do not worry if you are using PipeWire. The PipeWire PulseAudio compatibility layer often presents itself to applications as a PulseAudio device.
Step 2: Start a Recording Stream
Click Audacity’s recording button or start its recording meter. This step is important because the Audacity stream may not appear inside the system mixer until it is actively recording or monitoring.
Step 3: Route Audacity to the Monitor Source
Open PulseAudio Volume Control:
Select the Recording tab. Find the Audacity recording stream and change its input from the microphone to:
For example, choose the monitor of your USB headphones if that is where the audio is playing. Selecting the monitor of an unused HDMI output will produce a highly accurate recording of absolutely nothing.
Step 4: Play the Source and Check Levels
Start the browser video, music player, conference playback, game, or other program you want to capture. Audacity’s meters should begin moving.
Aim for peaks around -6 dB rather than repeatedly touching 0 dB. Digital clipping is not a charming vintage effect. It is simply distortion wearing an expensive-looking hat.
Step 5: Record and Export
Restart from the beginning of your source material, click Record, and stop when finished. Edit the waveform as needed, then export to WAV, FLAC, MP3, or another suitable format.
Disable Audacity’s software playthrough while recording desktop audio. Otherwise, the captured signal can be played back into the output, captured again, and turned into an echo loop that sounds like your laptop has become trapped in a cave.
Method 2: Record Linux System Audio With parecord
For a fast command-line solution, parecord can capture the default monitor source directly. It works with PulseAudio and usually works through PipeWire’s PulseAudio-compatible server.
Use the Default Monitor
Start playing the desired audio, let the command run, and press Ctrl + C when finished.
Select a Specific Monitor Source
If the default monitor is incorrect or unavailable, list all recording sources:
Look for a name ending in .monitor. It may resemble:
Copy the exact name and use it in the command:
This method is excellent for quick captures because it avoids opening a full audio editor. The resulting WAV file can be imported into Audacity or a video editor later.
Method 3: Record Speaker Output With FFmpeg
FFmpeg is ideal when you need repeatable commands, exact sample rates, automatic stopping, lossless compression, or integration with a shell script.
Find the Correct Monitor Name
Copy the monitor source associated with the output currently playing sound.
Record to an Uncompressed WAV File
The options request a 48 kHz stereo WAV file with 16-bit PCM audio. This is a practical format for video editing and general desktop recordings.
Automatically Use the Default Output Monitor
On systems where monitor names follow the standard sink-name pattern, this command can build the monitor name automatically:
If FFmpeg reports that the input does not exist, use pactl list short sources and enter the exact monitor name instead.
Record to FLAC
FLAC preserves the original audio while usually using less disk space than WAV. It is a strong choice for archiving or editing. Use a lossy format such as AAC or Opus only when smaller files are more important than repeated editing.
Record for a Fixed Duration
To stop automatically after ten minutes:
This is useful for automated tests, timed broadcasts, online classes, and any situation in which you do not trust yourself to remember that a terminal has been recording for the last six hours.
Method 4: Capture Desktop Audio With OBS Studio
OBS Studio is the better option when you need speaker output and video in the same recording. Typical uses include tutorials, software demonstrations, gameplay, webinars, and presentations.
Add the Output Device
- Open OBS Studio.
- Go to Settings > Audio.
- Select your active output device as Desktop Audio.
- If necessary, add an audio-output capture source from the Sources panel.
- Choose the output-capture option provided by your OBS build, commonly labeled PulseAudio even when PipeWire runs underneath.
Play a test sound and watch the OBS Audio Mixer. The desktop meter should move without the microphone meter being required.
Use pavucontrol When OBS Captures the Wrong Device
Start a recording in OBS, open pavucontrol, and visit the Recording tab. Route the OBS stream to the monitor of the correct speakers, headphones, USB interface, or HDMI output.
Keep Microphone and Desktop Audio Separate
Open Advanced Audio Properties in OBS and assign the microphone and desktop sound to separate recording tracks. This gives you more control during editing. Keep both sources on track 1 as well when you need a file that plays normally in standard video players.
Avoid adding the same output globally and again as a separate source. Capturing one stream twice creates echo, phasing, or a mysterious “robot in a bathroom” effect.
Method 5: Use Native PipeWire Tools
PipeWire includes tools for inspecting and recording nodes directly. This approach is useful for advanced users, custom routing, professional audio work, and troubleshooting.
Inspect Available Targets
Identify the relevant monitor or output-capture target, then record it by node identifier:
Press Ctrl + C to stop.
Use a Graphical Patch Bay
Applications such as Helvum or qpwgraph display PipeWire devices and streams as connected nodes. You can visually connect an application, output monitor, recorder, virtual sink, or processing tool.
This is valuable when you want to record only selected applications instead of every sound produced by the desktop. It is also useful for sending browser audio to OBS while keeping notification sounds out of the recording.
How to Fix Common Recording Problems
The Recording Is Completely Silent
The recorder is probably listening to a microphone or an inactive monitor source. Confirm that sound is playing through the intended output, then select that output’s monitor in pavucontrol.
Run the following command to confirm that the monitor exists:
The Monitor Source Does Not Appear
Start playback before searching for the source. Also start the recording application so its input stream appears in pavucontrol. Some interfaces remain hidden until an application actively uses them.
If using PipeWire, verify that the user services are healthy:
The Recording Uses the Wrong Output
Linux may change its default sink when you connect Bluetooth headphones, an HDMI monitor, or a USB interface. A recording started before the change may remain attached to the old monitor.
Stop and restart the recorder after changing devices, or manually reroute its recording stream through pavucontrol.
The Audio Is Distorted or Clipped
Reduce the playback or monitor level and leave headroom. Peaks near -6 dB are safer than peaks constantly reaching 0 dB. Increasing volume after recording is usually easier than repairing clipped samples.
The Audio Crackles or Skips
Use a consistent sample rate, preferably 48 kHz for video. Close applications consuming heavy CPU resources, avoid unnecessary real-time effects, and test with an uncompressed WAV file. Bluetooth devices can also change profiles or introduce additional latency.
You Hear an Echo
Disable software playthrough in Audacity and unnecessary monitoring in OBS. Also check whether the desktop output has been added twice. One clean route is enough; Linux does not award bonus points for enthusiasm.
Notifications Appear in the Recording
A monitor source captures everything sent to that output. Enable Do Not Disturb, close messaging applications, silence system alerts, and test the workflow before recording important material.
For greater isolation, create a virtual sink or use a PipeWire graph tool to route only selected applications into the recorder.
Recommended Audio Settings
| Use Case | Recommended Format | Sample Rate | Channels |
|---|---|---|---|
| Video editing | WAV, 16-bit or 24-bit PCM | 48 kHz | Stereo |
| Audio editing | WAV or FLAC | 44.1 or 48 kHz | Stereo |
| Long-term archive | FLAC | Match the source | Match the source |
| Small file sharing | Opus or AAC | 48 kHz | Stereo |
| Speech or meetings | Opus, AAC, or FLAC | 48 kHz | Mono or stereo |
When editing is planned, record in WAV or FLAC first. Export a compressed copy only after the recording has been trimmed and processed. Repeatedly converting between lossy formats can gradually reduce quality.
Practical Experience: Lessons From Real-World Linux Audio Recording
The most important practical lesson is that the recording application is rarely the real problem. Audacity, FFmpeg, OBS, and parecord usually do exactly what they are told. The trouble is that Linux may be telling them to listen to the wrong source.
A typical failed recording begins with a user selecting “default input,” pressing Record, and receiving either microphone noise or silence. The reliable fix is to think in terms of signal routing. First identify where the sound is playing. Then identify that output’s monitor. Finally connect the recorder to that monitor. Once those three pieces are understood, the process becomes predictable rather than magical.
Another useful habit is to begin playback before configuring the recording. Active streams are easier to identify because their meters move in pavucontrol, OBS, or a PipeWire graph. When several devices have names such as “Family 17h HD Audio Controller,” a moving meter is considerably more informative than Linux’s talent for naming hardware like a filing cabinet.
Short test recordings also prevent expensive mistakes. Record 15 seconds, stop, play the file, and verify the correct content, channel balance, and volume. This tiny test catches wrong monitor selections, muted applications, notification sounds, Bluetooth profile changes, and double-capture echo. It is far better to discover a problem after 15 seconds than after a two-hour webinar.
Output changes deserve special attention. Connecting headphones or waking an HDMI display can change the default sink. The recording stream may remain connected to the old monitor, even though the audible sound has moved elsewhere. When switching outputs, restart the recorder or inspect its route in pavucontrol.
For routine captures, a simple command is often more dependable than an elaborate setup. The parecord command using @DEFAULT_MONITOR@ is excellent for quick notes, playback samples, and temporary recordings. FFmpeg becomes more useful when the job needs an exact duration, automatic filenames, a specified sample rate, or integration with another script.
Graphical programs shine when editing or video is involved. Audacity makes it easy to cut silence, fade sections, and inspect clipping. OBS is better for tutorials because it keeps screen, camera, microphone, and desktop audio in one project. Separating the microphone and desktop output into different tracks provides valuable flexibility, especially when someone coughs during the best part of a demonstration.
Advanced PipeWire routing becomes worthwhile when global desktop capture is too broad. A normal monitor records browser audio, music, game sound, alerts, and every other stream sent to the same output. A virtual sink or graph-based route can isolate only the desired applications. This requires more setup, but it prevents a private message notification from becoming an unexpected guest star in a published tutorial.
Finally, file format matters less than getting a clean signal. A perfect 24-bit WAV recording of the wrong device is still useless. Start with correct routing, sensible levels, and a short test. After that, choose WAV or FLAC for editing and use a compressed format for delivery. Linux audio can look complicated, but most successful recordings follow the same path: find the sink, select its monitor, verify the meter, and capture.
Record Responsibly
Only record audio that you own or have permission to capture. Music, streaming services, meetings, calls, online courses, and broadcasts may be protected by copyright, contracts, privacy rules, or local recording-consent laws. Technical capability does not automatically provide legal permission.
Conclusion
The easiest way to record speaker output on Linux is to capture the monitor source associated with the active output device. Audacity and pavucontrol provide the most approachable graphical workflow, while parecord and FFmpeg are ideal for terminal users. OBS Studio handles desktop audio alongside video, and native PipeWire tools provide deeper control for complex routing.
When a recording is silent, do not immediately reinstall the entire audio system in a burst of heroic optimism. Confirm the active output, choose its monitor, start playback, and watch the recording meter. In most cases, the sound is already available; it simply needs to be pointed in the right direction.