VLC can pull the audio out of a video without re-encoding it, and VideoLAN says that costs you nothing in quality. The documented way to do it is a command line rather than a checkbox — and the page that documents it is shorter, and more honest, than most write-ups of it.
What "without re-encoding" actually means
Two ideas have to stay separate. VLC's documentation defines them: "A codec is a compression algorithm, used to reduce the size of a stream," while a container format "contains one or several streams already encoded by codecs."
Extracting audio losslessly means changing the container and discarding the video while leaving the codec — the compressed audio bytes themselves — untouched. VideoLAN's how-to for extracting audio states the payoff verbatim:
"If you want the extracted audio in the same format as it is stored in the input, then VLC can provide it to you with no loss of quality, because there is no re-encoding of the content."
One sourcing note: that page belongs to what VideoLAN itself labels the "informal VLC Support Guide." It is on the official wiki, but VideoLAN does not call it official documentation.
The mechanism behind it is on the wiki's Transcode page:
"The transcode statement can contain vcodec and vb to change the video codec and acodec and ab to change the audio codec. If vcodec is missing, the video codec will stay the same (same for acodec)."
So omitting acodec does not mean "fall back to some default codec." It means leave the audio stream alone. The same page goes further: "If your input streams already matches the encoding that you desire for your output stream, then you don't have to transcode at all (just leave out the transcode settings on the command line, and it will thence not transcode). In the GUI this is called "keep the original track" (I think)."
That "(I think)" is in the original: VideoLAN's own wiki is hedging about which GUI control means "no transcoding." Worth knowing before you trust a dropdown to do the lossless thing. The page also carries a banner reading "This page is outdated and information might be incorrect."
Before you start
- Know which audio codec is already inside your file. Lossless extraction only works when the output you ask for is the format the input already stores. If you are unsure how to read that in your build, check the official documentation.
- Expect a second file, not an edit. Verbatim: "Transcoding in VLC media player copies the movie to a new file in a different format, so you end up with both the original and new files."
- Know why every option is named
sout. Verbatim: "In VLC, transcoding is exactly the same as streaming across a network, except that the output is sent to a file instead of a network." The destination is a stream output — hence the--sout-prefix on everything. - Accept the GUI's hard limit. Verbatim: "VLC's GUI lets you specify the Title and Chapter from which it will start, but VLC will continue extracting until the end of the Title. It doesn't let you extract a single Chapter at a time. To do that, you will need to use the VLC command line."
The lossless command VideoLAN publishes
There is exactly one no-re-encoding example in the extract-audio how-to, and it is narrow: AC3 audio, from a DVD, on Linux.
vlc --no-sout-video dvdsimple:///dev/scd0@1:1 :sout='#std{access=file,mux=raw,dst=./file.ac3}'Piece by piece, using only what the docs define:
--no-sout-video— "VLC will not pass on a video component to the streaming output." Its counterpart on the same page is--sout-audio: "VLC will, however, pass on an audio component to the streaming output."- No
#transcode{}block at all. That absence is the entire trick: no encoder in the chain, nothing to lose quality to. access=file— "The access=file instructs vlc to store the output in a file (and not stream it), and the dst is the destination of the new (output) file."mux=raw— explained in the same page's FLAC example: it "uses a raw file structure instead of the WAV file structure.":soutwith a leading colon, not--sout. Verbatim: "Note: :sout means that the option sout applies only to the preceding stream, not to the whole command line."
That last distinction is the one people copy past: the colon form binds the option to the stream it follows, the double-dash form to the whole command line.
One more flag worth adding when scripting: -I dummy — "VLC should run with no GUI, typing error messages and asking for input in the command line window. This is better for scripting and for faster completion."
What VideoLAN does not publish
VideoLAN does not publish a plain file-in, file-out version of the lossless command. Its WAV and FLAC examples both route through #transcode{acodec=...}, which by definition re-encodes. And the section headed "Extracting audio in MP3 format" was never written — its entire body is the word "TODO!".
So treat the DVD example as the documented skeleton, not a copy-paste answer for your MP4, and verify what you build from it: "it's advisable to use an option like --stop-time=30 to only encode the first 30 seconds—this means you can check the file has transcoded correctly." On macOS, VideoLAN notes, that trick "doesn't seem to work."
If you would rather not build a command line
VideoLAN says this part itself, in the same how-to:
"Be aware that, while VLC has certain facility for this task, other tools may be even more powerful, faster, or more reliable for the task."
"Where VLC really shines is for sources which combine video and audio content."
That is an unusually candid line from a project's own docs, and it names the trade-off honestly.
Try it right here
Runs in your browser. Your file is not uploaded anywhere.
This runs inside your browser tab — the file is read from disk locally and never uploaded. Be precise about what it does, though: the WAV preset decodes the audio once and writes uncompressed 16-bit PCM. Nothing is re-compressed, so there is no second lossy generation, but it is not the byte-for-byte copy the VLC command performs. For a true stream copy from a file, FFmpeg's stream copy is the direct equivalent. The tool's own page is extract audio from video; the rest are under all Clapr tools.
Common mistakes
- Picking a muxer the codec cannot live in. The big one, and VideoLAN warns about it explicitly: "If you choose an incompatible stream for a given muxer, it may silently fail. You can look for error messages in the messages window to help you debug the failures."
- Assuming the documented muxer list is complete. The official
stddocumentation enumeratests,ps,mpeg1,ogg,asf,asfh,aviandmpjpeg— and lists noraw, even though the extract-audio page usesmux=raw. VideoLAN's documentation index says "Parts of this documentation are currently outdated or incomplete," so read that gap as missing docs, not a missing feature. Runvlc -Hto see what your build exposes. - Leaving loop or repeat enabled in the GUI. Verbatim from the Transcode page: "without the options --no-repeat --no-loop, you may find that loop options selected in the GUI cause transcodes to fail." Almost nobody mentions it, and it turns a correct command into a failing one.
- Single backslashes in Windows paths. Verbatim: "a backslash may have to be escaped by using a double backslash so that a filename would be
D:\\path\\to\\file.mpg" — flagged "especially within single and double quote blocks." - Reaching for AVI as the output container. The official muxer documentation says flatly: "The avi muxer in VLC is known to produce corrupt files."
FAQ
Does extracting audio in VLC lose quality? Only if you re-encode. VideoLAN's how-to says that when the extracted audio stays in the format the input stored it in, VLC delivers it "with no loss of quality, because there is no re-encoding of the content." Ask for a different codec and that no longer applies.
What does mux=raw do? The how-to describes it as using "a raw file structure instead of the WAV file structure." That is the right choice when you are copying an existing stream rather than encoding a new one.
What is the difference between :sout and --sout in VLC?
Scope. VideoLAN's note, verbatim: ":sout means that the option sout applies only to the preceding stream, not to the whole command line." The --sout form applies to everything on the line.
Why is there no official VLC command for extracting MP3?
Because the section that should contain it was never finished: in the extract-audio how-to, "Extracting audio in MP3 format" has a body consisting of the single word "TODO!". Every MP3-from-VLC tutorial documents something VideoLAN never documented. The one official command on the wiki that uses acodec=mp3 is a file-merging example: #gather:transcode{acodec=mp3,ab=128}:standard{access=file,mux=dummy,dst=combinedout.mp3}.
My extracted file is empty or has no sound. What went wrong? Most likely the codec and the muxer are incompatible, which VideoLAN says "may silently fail." Open the Messages window and re-run — that is the official place to find the error you were never shown.
The rest of the step-by-step guides are in the how-to collection.
Quotations are from VideoLAN's wiki — the extract-audio and Transcode pages and the Streaming HowTo documentation — checked 16 September 2026. The Transcode page carries VideoLAN's own "outdated" banner. Verify anything version-specific with vlc -H on your own build.