In VLC, compressing a video means transcoding it — and VideoLAN's wiki defines transcoding as "the process of taking a video file and changing it to a different format or bitrate." Bitrate is the word that matters when you are trying to fit a clip into an email, because bitrate is what file size is made of.
The useful part of this guide is not the click path. It is knowing which four settings VideoLAN's documentation explicitly describes as ways to bring the bitrate down, and which ones it warns you off.
Before you start
You need free disk space, not just a smaller output. VLC does not compress in place. The official wiki is blunt about it:
"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. This means you need to have enough space on your hard drive to store this extra file. You should also have a reasonably fast computer, as transcoding can be very slow."
You need a target number. Mail providers cap attachment size, and the cap is theirs — VideoLAN documents no file size or duration limit of its own for conversion. Check your provider's official documentation for the current limit before you pick settings.
Two caveats about the documentation itself. VideoLAN's Transcode page opens with a notice reading, verbatim: "This page is outdated and information might be incorrect." And the published vlc -H reference is labelled as the output of a vlc-4.0.0-dev build under Windows, not a stable release. Confirm every option name below against your own build with vlc -H.
One line explains the whole interface: "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." Hence the talk of destinations, and the --sout-transcode- prefix on every option.
The four settings that actually lower the bitrate
VideoLAN's advanced streaming documentation describes each transcode option individually, and four of them are described specifically as ways to reduce bitrate.
fps — target frame rate. Official wording: "This option allows to set the framerate of the transcoded video, in frames per second; reducing the framerate of a video can help decrease its bitrate." Since VLC 2.2.0, the documentation notes that sout-transcode-fps accepts rationals such as 30000/1001.
scale — resolution multiplier. Official wording: "This option allows the give the ratio from which the video should be rescaled while being transcoded. This option can be particularly useful to help reduce the bitrate of a stream." The module reference gives 0.25 as an example value, and the default is 0.
samplerate — audio sample rate. Official wording: "This option allows to set the sample rate of the transcoded audio stream, in Hz. Reducing the sample rate is a way to lower the bitrate of the resulting audio stream." Its documented range is [0 .. 48000], annotated "(11250, 22500, 44100 or 48000)" — so the transcode module will not write 96 kHz audio.
channels — number of audio channels. Official wording: "This option allows to set the number of channels of the resulting audio stream. This is useful for codecs that don't have support for more than 2 channels, or to lower the bitrate of an audio stream."
You can also set the bitrates directly. The documentation is explicit about the units, which is the detail third-party VLC tutorials most often mangle:
vb: "This option allows to set the bitrate of the transcoded video stream, in kbit/s."ab: "This option allows to set the bitrate of the transcoded audio stream, in kbit/s."
Worth knowing: the module reference lists the default value of sout-transcode-ab as 96. If your converted audio sounds worse than expected and you never touched the audio settings, check that first — against your own build, since the page carrying that value gives no version range.
Step by step
Step 1 — Open the conversion dialog. The official instruction is: "Open the Media menu and select Convert/Save".
Step 2 — Choose the three things VLC asks for. The wiki describes the wizard's scope precisely: "You will then be asked what format to convert to: you can give a video codec, an audio codec and a container format." It does not publish the names of the built-in profiles, so pick the profile whose container matches what you intend to send rather than copying a preset name from somewhere else.
Step 3 — Name your codecs if you want a re-encode. The wiki states: "If vcodec is missing, the video codec will stay the same (same for acodec)." Leaving a codec unspecified is a real choice: if the source already matches what you want, VideoLAN says "you don't have to transcode at all," and adds that the GUI calls this keeping the original track (the sentence still carries an "(I think)" in the original).
Step 4 — Set the bitrate knobs. Those parameters are documented on the command line. The official example, verbatim:
vlc input_file --sout="#transcode{vfilter=adjust{gamma=1.5},vcodec=theo,vb=2000,scale=0.67,acodec=vorb,ab=128,channels=2}:standard{access=file,mux=ogg,dst="output_file.ogg"}"The documentation explains that this will "resize the video size (resolution) by 0.67 (e.g. 1080x720 to 720x480), convert video using the Theora codec with bitrate @ 2000 kb/s and audio using the Vorbis codec with bitrate @ 128 kb/s". It is Theora/Vorbis/Ogg because it comes from an Ogg walkthrough — swap in codecs and a muxer your build supports and your recipient can open.
Step 5 — Encode 30 seconds first. Official advice, not a forum trick:
"Transcoding takes quite a while, so 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, and that the output is of a suitable quality. (Note: On macOS this trick doesn't seem to work. Just press Ctrl-C after a while, VLC will properly write out the already transcoded segment)."
Check that clip for two things — does it play, does it have sound — then scale its size up by the ratio of full length to 30 seconds to predict whether the full encode lands under your cap.
Step 6 — Run the full encode. Expect it to be slow. VideoLAN's own warning: "Depending on the bitrate of the original stream and of the options chosen, transcoding can be a very CPU-intensive task."
If you would rather not tune six parameters
VLC's documented compression controls are raw bitrate knobs: set numbers, wait, measure, adjust. That loop is fine once, and tedious when you need one clip to fit in one email today.
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, re-encoded locally and handed back, so nothing is uploaded anywhere. For the terminal equivalent, compressing with ffmpeg covers the same trade-offs, and the standalone video compressor is the same engine without the article around it.
Common mistakes
Using width and height to scale. The documentation says outright: "Avoid using width and height parameters, also maxwidth and maxheight! These are applied before the vfilter and might result in unwanted results." Use scale instead.
Leaving loop turned on in the GUI. A documented note reads: "(Note: without the options --no-repeat --no-loop, you may find that loop options selected in the GUI cause transcodes to fail.)" Almost nobody mentions this, and it turns a failed conversion into a mystery.
Pairing a codec with a container that cannot hold it. The wiki: "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." No error dialog, just a wrong or soundless file — so when something looks off, open the messages window first.
Choosing AVI as the container. VideoLAN says it plainly: "The avi muxer in VLC is known to produce corrupt files."
Expecting a target-size box. The documented transcode options set bitrates, not a target file size. "Under X megabytes" is something you reach by setting bitrate, testing 30 seconds and adjusting.
FAQ
How do I compress a video in VLC?
Open the Media menu, choose Convert/Save, and give VLC a video codec, an audio codec and a container format. To reduce size, lower vb and ab (both in kbit/s) and use scale and fps, which the documentation describes as ways to decrease bitrate.
Why is VLC conversion so slow?
VideoLAN warns that "transcoding can be a very CPU-intensive task," and separately that you "should also have a reasonably fast computer, as transcoding can be very slow." Encode 30 seconds with --stop-time=30 before committing to a long file.
What bitrate should I use for an email attachment? VideoLAN publishes no recommended number — it documents the units and leaves the value to you. Find your provider's current attachment limit in their official documentation, then work backwards: encode 30 seconds, measure, adjust.
Does VLC have an email preset? The official documentation lists no built-in profile names; it only says you can give a video codec, an audio codec and a container format. Pick by container rather than by a preset name you read elsewhere.
Why does my converted file have no sound? Start with the muxer/codec pairing. Each muxer supports a narrow set of audio codecs, and the wiki says an incompatible combination "may silently fail" — no warning, just a silent file. Open the messages window to see the real errors.
Can VLC output MP4?
The official muxer reference does not list mp4, yet another official wiki example uses mux="mp4" directly — and VideoLAN's documentation index notes that parts of the documentation are outdated or incomplete. The module reference adds that supported codecs "are dynamically assigned by the running program," which is why no static list exists. Run vlc -H to see what your build exposes.
More step-by-step guides live in the how-to hub, and every browser-based converter is listed under all Clapr tools.
Quoted text comes from VideoLAN's own wiki, checked 16 September 2026. The Transcode page carries an "outdated" notice and the published vlc -H output is from a 4.0.0-dev build — verify option names against your own installation.