Convert MPEG to WebM — Free Online Tool
Convert MPEG files to WebM using VP9 video and Opus audio — replacing legacy MPEG-1/2 compression with a modern, royalty-free codec optimized for HTML5 video streaming. This conversion makes old broadcast or DVD-sourced MPEG footage directly playable in Chrome, Firefox, and Edge without plugins.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your MPEG file here
or click to browse
Free — no uploads, no signups. Your files never leave your browser.
Settings
Note: Browser-based encoding uses approximate quality targets. For precise CRF compression, copy the FFmpeg command above and run it on your desktop.
Estimated output:
Conversion Complete!
DownloadHow It Works
MPEG files use MPEG-1 or MPEG-2 video compression alongside MP2 or MP3 audio — formats designed in the early 1990s for broadcast television and optical disc storage. During this conversion, the MPEG-2 video stream is fully re-encoded into VP9, a modern intra- and inter-frame codec that typically achieves significantly better compression at equivalent visual quality. The MP2 audio is simultaneously transcoded into Opus, a low-latency codec purpose-built for internet delivery. Because MPEG and WebM share no common codec, both streams must be decoded and re-encoded — this is a full transcode, not a remux. The output WebM container also gains support for features the MPEG format never had, including transparency layers, chapter markers, multiple audio tracks, and native subtitle embedding.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool, which handles the full decode-encode pipeline for both the MPEG-2 video and MP2 audio streams in the source file. |
-i input.mpeg
|
Specifies the input MPEG file. FFmpeg will automatically detect whether the source uses MPEG-1 or MPEG-2 video compression and select the appropriate decoder. |
-c:v libvpx-vp9
|
Selects the VP9 encoder (libvpx-vp9) to re-encode the MPEG-2 video stream. VP9 is the standard video codec for WebM and is natively supported by all major browsers without licensing fees. |
-c:a libopus
|
Selects the Opus encoder to transcode the MP2 audio from the MPEG source. Opus is the preferred audio codec for WebM, offering better quality-per-bitrate than MP2 and full native support in Chrome, Firefox, and Edge. |
-crf 33
|
Sets the Constant Rate Factor for VP9 quality targeting. A value of 33 provides a balanced quality level suitable for most web video; lower values (toward 0) increase quality and file size, while higher values reduce both. |
-b:a 128k
|
Sets the Opus audio bitrate to 128 kilobits per second. At this rate, Opus delivers audio quality that is perceptually equivalent to or better than the MP2 audio typically found in MPEG broadcast recordings. |
-b:v 0
|
Required companion flag for VP9 constant-quality mode. Setting the video bitrate target to zero tells the VP9 encoder to disregard bitrate constraints and use the CRF value alone to determine quality, enabling true constant-quality encoding. |
output.webm
|
Specifies the output filename and triggers FFmpeg to use the WebM container format, which wraps the VP9 video and Opus audio streams in an open, Matroska-based container designed for HTML5 delivery. |
Common Use Cases
- Republishing archived broadcast television footage or DVD rips as HTML5-native video embeds on a website without requiring Flash or a proprietary media player
- Converting legacy MPEG-2 video assets from a video production archive into a web-optimized format for a streaming or video-on-demand platform that requires WebM
- Preparing MPEG footage captured from a DVD camcorder or set-top box recorder for upload to a video hosting service or CMS that prefers open, royalty-free formats
- Reducing the file size of large MPEG recordings from security cameras, TV tuner cards, or broadcast capture cards before storing or distributing them online
- Migrating a library of MPEG training or educational videos to a modern format compatible with the HTML5 <video> tag for use in a learning management system
- Converting MPEG clips sourced from legacy editing software exports into WebM for use in browser-based video editors or WebGL applications that require VP9 input
Frequently Asked Questions
Because both MPEG-2 and VP9 are lossy codecs, this conversion involves a generation of quality loss from re-encoding. However, VP9 is substantially more efficient than MPEG-2 — at the same bitrate, VP9 typically produces sharper, cleaner results, especially on smooth gradients and fine detail that MPEG-2 tends to block or ring. Using the default CRF value of 33 provides a good balance; lowering it toward 0 gives better quality at a larger file size.
MPEG files most commonly carry MP2 (MPEG-1 Audio Layer II) audio, which is a legacy format not natively supported by the WebM container. WebM is designed to carry either Opus or Vorbis audio. Opus is the modern default because it outperforms MP2 at the same bitrate — particularly at lower bitrates — and is natively supported in all major browsers. The conversion transcodes your MP2 audio to Opus at 128k by default, which is transparent quality for most speech and music content.
Adjust the -crf value: lower numbers mean higher quality and larger files, higher numbers mean lower quality and smaller files. The valid range for VP9 is 0 (lossless-equivalent) to 63 (lowest quality). The default in this tool is 33. For archiving high-quality MPEG source material, try -crf 24 or lower. For web delivery where file size matters more, values in the 36–42 range are commonly used. Always keep -b:v 0 in the command alongside -crf, as VP9 requires this flag to enable constant-quality mode.
MPEG files carry very limited metadata — typically just basic stream properties like frame rate, resolution, and duration, with no standardized title or tag fields. FFmpeg will pass through whatever metadata exists in the MPEG container to the WebM output by default. However, MPEG does not support chapters, multiple audio tracks, or embedded subtitles, so those features remain absent unless you add them manually. The WebM container is fully capable of holding that data if you choose to add it separately.
Yes. On Linux or macOS, you can loop over files in a directory: for f in *.mpeg; do ffmpeg -i "$f" -c:v libvpx-vp9 -c:a libopus -crf 33 -b:a 128k -b:v 0 "${f%.mpeg}.webm"; done. On Windows Command Prompt, use: for %f in (*.mpeg) do ffmpeg -i "%f" -c:v libvpx-vp9 -c:a libopus -crf 33 -b:a 128k -b:v 0 "%~nf.webm". This processes each file sequentially, which is practical for large archives of MPEG footage.
MPEG-2 playback in browsers depends on OS-level codec licensing — it works in some environments but not others, and it requires a container like MPEG-PS or MPEG-TS that browsers do not natively support via the HTML5 <video> tag. WebM with VP9 is royalty-free, built directly into all major browser rendering engines, and requires no OS codec or plugin. For any web-facing use case, WebM is the more reliable and future-proof delivery format for content that originated as MPEG.
Technical Notes
MPEG-2 video uses a discrete cosine transform (DCT) block-based codec with a macroblock size of 16x16 pixels, which causes visible blocking artifacts at lower bitrates — a limitation VP9 overcomes with more flexible transform block sizes and an in-loop deblocking filter. The -b:v 0 flag is mandatory in the FFmpeg VP9 pipeline when using -crf; without it, FFmpeg defaults to a constrained bitrate mode that ignores the CRF target entirely. Audio quality deserves attention: MP2, which is common in broadcast MPEG sources, encodes audio with relatively wide frequency response but limited psychoacoustic modeling compared to Opus. At 128k, Opus will typically sound equivalent to or better than MP2 at 192k, so the default audio bitrate reduction should be imperceptible. One known limitation is encoding speed: libvpx-vp9 is significantly slower than MPEG-2 encoding, so large MPEG files — particularly those from DVD captures or broadcast archives — may take considerable time to process, even with WebAssembly acceleration. For files over 1GB, running the displayed FFmpeg command locally on a desktop machine with native binaries will be substantially faster than in-browser processing.