FFmpeg: Extract Audio From a Loom MP4 Without Re-Encoding

Sep 21, 2026

Every video you download from Loom is an MP4, which makes pulling the audio out a single stream copy: no decode, no encode, no quality loss, done in about the time it takes to read the file off disk.

The command is the easy part. What is worth knowing first is what Loom's own documentation says is inside that MP4 — and which of Loom's audio processing does not come with it.

The command

ffmpeg -i loom-recording.mp4 -vn -c:a copy loom-audio.m4a

The .m4a extension is the default choice because Loom's media specification tables name AAC as the audio codec for desktop-app recordings and for videos uploaded to Loom. If you want certainty rather than a good default, look before you copy:

ffprobe loom-recording.mp4

The audio stream line names the codec. Match the extension to it — .m4a for AAC, .opus for Opus — because -c:a copy only works if the output container can already hold what you have.

What each flag does

  • -i loom-recording.mp4 — the file you downloaded from Loom.
  • -vn — leaves the video behind. FFmpeg's documentation describes this behaviour as an input option: "As an input option, blocks all video streams of a file from being filtered or being automatically selected or mapped for any output." The docs mark -vn as an input/output option, so treat that sentence as covering the input position specifically.
  • -c:a copy — the whole point. Instead of decoding and re-encoding the audio, FFmpeg moves the existing packets into a new container.
  • The output extension — chooses the container.

FFmpeg's docs define stream copy directly:

"The simplest pipeline in ffmpeg is single-stream streamcopy, that is copying one input elementary stream's packets without decoding, filtering, or encoding them."

And what it buys you:

"Streamcopy is useful for changing the elementary stream count, container format, or modifying container-level metadata. Since there is no decoding or encoding, it is very fast and there is no quality loss."

"There is no quality loss" is the official guarantee, not folklore. Note the stated scope, though: stream count, container, container-level metadata. Stream copy cannot change the codec, the sample rate, or the channel count. The moment you want any of those, you are re-encoding and the guarantee stops applying.

What Loom says is in the file

Loom publishes per-platform media specifications. The audio rows read, verbatim:

Recorded withAudio row
Windows desktop app"Codec: AAC, 48kHz, Channels: 1 Channel (Mono), Variable bitrate."
Mac desktop app"Codec: AAC, Sample Rate: 48kHz, Channels: up to 2 Channel (Stereo), Bitrate: Variable bitrate"
Uploaded to Loom"Codec: AAC, 48kHz, Channels: 1 Channel (Mono), Variable bitrate."
Chrome extension"Codec: OPUS, Sample Rate and Number of channels: Determined by your computer's available system and browser resources"

Two things follow from this table.

Windows desktop recordings are mono, Mac ones can be stereo. That is Loom's own wording, and it explains a single-channel waveform that looks like a bug. Loom does not state a reason, and -c:a copy cannot undo it — going from one channel to two would require re-encoding, and would not recover anything that was never captured. More on that in why Loom records mono audio on Windows.

Do not assume the download matches the table exactly. Those specifications describe the media Loom holds and streams. About the downloaded file, Loom says only that "The MP4 media encoding specs are similar to the RAW media recorded" — similar, not identical. That is precisely why ffprobe is step zero here rather than optional.

On bitrate, Loom publishes "Variable bitrate" and no number. If you need a figure for a spec sheet, check the official documentation rather than inferring one from file size.

What the extracted audio will be missing

This is the part people discover after the fact.

Background-noise suppression is not in the download. Loom's help page on the feature is explicit: "No, if you select a video to have reduced background noise, this will be reflected in the web player but downloaded Loom videos will include the original audio." So the audio you copy out is the raw take — clean it up yourself if the web player version sounded better.

Captions are not in the file either. Loom's download page lists what gets dropped: "While all video trims will be retained in the mp4-downloaded format, it's important to note that other Loom features, including CTAs, Filler Word + Silence removal, Chapters, and Closed Captions, will not be included in the downloaded file." If you need the transcript alongside the audio, download the SRT separately.

One caveat on that quote: a different Loom page says of filler-word and silence removal that "If you download your video, the removal will remain intact." The two pages disagree, so check the official documentation for the current behaviour — or just listen to the first thirty seconds of your extracted file.

If you would rather not install FFmpeg

For a single Loom download, a browser does the job:

Try it right here

Runs in your browser. Your file is not uploaded anywhere.

Loading tool…

This runs locally in your tab — the file is read from disk and never uploaded. Be precise about what it does, though: the lossless preset decodes the audio once and writes uncompressed PCM. Nothing is re-compressed, so there is no second lossy generation, but it is not the byte-identical copy the command above performs. The tool's own page is extract audio from video, and the rest live under all Clapr tools.

Variations

Pick a specific audio stream when a file carries more than one:

ffmpeg -i loom-recording.mp4 -map 0:a:0 -c:a copy loom-audio.m4a

Be aware of how -map behaves once you use it at all: "When -map is used, only user-mapped streams are included in that output file, with one possible exception for filtergraph outputs." It is an all-or-nothing switch — anything you did not map is silently absent.

Convert to MP3 instead of copying only if something downstream demands MP3; it adds a lossy generation on top of AAC.

ffmpeg -i loom-recording.mp4 -vn -c:a libmp3lame loom-audio.mp3

If you already copied to .m4a and only then discovered the MP3 requirement, M4A to MP3 handles the second hop without a terminal.

Batch work starts manually. Loom states that "Loom does not offer a open API at this time" and that its SDK "is not an open API and does not provide the same functionalities as APIs" — so a library of recordings comes down through the ordinary download flow. Grab the files by hand, then loop over them locally.

Troubleshooting

There is no MP4 to work with. Downloading is plan-gated: "The download feature is only available on Business, Business+ AI, or Enterprise plans. Users on the Starter Free plan can’t download videos." Workspace admins can also switch it off entirely, after which "users in your workspace will no longer have the ability to download videos and transcripts." And there is a ceiling — Loom says "you won't be able to download Loom videos over 20GB."

FFmpeg complains about the muxer or codec. The extension names a container that cannot hold your codec. Run ffprobe, read the audio line, pick the matching extension.

The output is missing something you expected. Check whether -map is in your command. As soon as it appears, FFmpeg stops selecting streams for you.

FAQ

Does extracting audio from a Loom MP4 reduce quality? Not with -c:a copy. FFmpeg's documentation states that because there is no decoding or encoding, "there is no quality loss." Converting to MP3 is a different operation and is lossy.

What audio codec is inside a Loom download? Loom's specification tables list AAC at 48kHz for desktop-app recordings and for uploads, and OPUS for the Chrome extension. Loom describes the downloaded MP4 only as "similar to the RAW media recorded", so confirm with ffprobe before choosing an extension.

Why is the audio from my Loom recording mono? Loom's own table for the Windows desktop app reads "Channels: 1 Channel (Mono)", while the Mac table reads "up to 2 Channel (Stereo)". Stream copy preserves whatever was recorded.

Will the extracted audio have Loom's noise reduction applied? No. Loom states that reduced background noise "will be reflected in the web player but downloaded Loom videos will include the original audio."

Can I extract audio from all my Loom videos at once? Not through Loom. It says it "does not offer a open API at this time", so the downloads are manual; the FFmpeg part is what you can script afterwards.


Loom details quoted from Loom's help centre pages on video encoding settings, downloading videos, background noise and the Loom API, checked 16 September 2026; FFmpeg quotes from the FFmpeg documentation. More command-line walkthroughs are in the FFmpeg guides.

Clapr team

Clapr team

FFmpeg: Extract Audio From a Loom MP4 Without Re-Encoding | Clapr Blog