Convert MKV to WEBA — Free Online Tool
Convert MKV video files to WEBA audio by extracting and re-encoding the audio stream to Opus format inside a WebM container. This is ideal for stripping out high-quality audio from Matroska files for web playback, since Opus delivers excellent clarity at low bitrates compared to the audio codecs commonly found in MKV files like AAC or MP3.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your MKV 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
MKV is a container that can hold video, audio, subtitles, chapters, and multiple audio tracks simultaneously. When converting to WEBA, the video stream is completely discarded using the -vn flag — no video decoding or encoding occurs. The audio stream is then transcoded to Opus using the libopus encoder, regardless of what codec the original MKV used (commonly AAC, MP3, Vorbis, or FLAC). The result is a WEBA file — an audio-only WebM container — that holds only the Opus-encoded audio. Because Opus encoding is lossy, this process introduces some generation loss compared to a lossless source, but Opus is highly efficient and typically produces excellent perceptual quality at 128k bitrate. Subtitles, chapters, and any additional audio tracks present in the MKV are not carried over, as the WEBA format supports none of these features.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg program, the open-source multimedia processing engine that handles reading the MKV container, decoding the audio stream, running the Opus encoder, and writing the WEBA output file. |
-i input.mkv
|
Specifies the input file — in this case an MKV (Matroska) container, which may contain video, one or more audio tracks, subtitles, chapters, and metadata. FFmpeg will probe this file to identify all available streams before processing. |
-c:a libopus
|
Sets the audio codec to libopus, the reference Opus encoder, which will transcode whatever audio codec is in the source MKV (AAC, MP3, FLAC, etc.) into Opus-encoded audio suitable for the WEBA/WebM container. |
-b:a 128k
|
Sets the target audio bitrate to 128 kilobits per second for the Opus encoder. At this bitrate, Opus typically achieves perceptually transparent quality for most music and speech content, while producing a file significantly smaller than the original MKV. |
-vn
|
Disables video output entirely, telling FFmpeg to ignore and discard all video streams from the MKV. This is required because WEBA is an audio-only format and cannot contain video data; without this flag, FFmpeg would attempt to include the video stream and fail or produce an invalid file. |
output.weba
|
Specifies the output filename with the .weba extension, which tells FFmpeg to write an audio-only WebM container. The .weba extension is the conventional designation for WebM files containing only Opus or Vorbis audio, distinguishing them from full audio-video .webm files. |
Common Use Cases
- Extract the audio commentary track from an MKV movie rip to listen to offline without carrying the large video file
- Pull the audio from an MKV lecture or conference recording to create a podcast-friendly audio file optimized for web streaming
- Convert an MKV music concert recording to a web-compatible WEBA file for embedding audio playback directly in a browser without a video player
- Strip audio from an MKV screen recording of a tutorial or webinar to produce a lightweight audio-only version for users with limited bandwidth
- Extract Opus audio from an MKV for use in a web application or game that requires WebM-compatible audio formats natively supported by Chromium-based browsers
- Reduce storage footprint of MKV video files when only the audio content — such as a radio drama or audiobook — is actually needed
Frequently Asked Questions
Yes, some quality loss is possible depending on what audio codec is in your MKV file. If the original MKV contains a lossless audio track like FLAC, transcoding to Opus at 128k bitrate introduces lossy compression for the first time. If the MKV already contains a lossy codec like AAC or MP3, you are doing a lossy-to-lossy transcode, which compounds generation loss. That said, Opus at 128k is widely regarded as transparent or near-transparent for most content, so the difference is rarely audible in practice.
Both are discarded entirely. WEBA is a minimal audio-only format derived from the WebM container specification, and it has no support for subtitles, chapters, or multiple audio tracks. Only the first (default) audio track from the MKV will be encoded into the WEBA output. If you need a specific alternate audio track from the MKV, you would need to modify the FFmpeg command to select it explicitly using the -map flag.
Opus is the default audio codec for WEBA because it is technically superior to Vorbis in nearly every measurable way — it achieves better audio quality at equivalent bitrates, handles both speech and music efficiently, supports lower latency, and is the actively maintained standard for WebM audio. Vorbis is older and has been largely superseded by Opus in modern web contexts. All major browsers that support WEBA also support Opus, making it the correct default choice.
Replace the value after -b:a with your desired bitrate. For example, use -b:a 64k for a smaller file suitable for speech-only content like podcasts, or -b:a 192k for higher fidelity music. Opus performs exceptionally well even at low bitrates — 64k Opus is often indistinguishable from 128k AAC — so you can often go lower than you might expect without noticeable quality degradation. The full command at 192k would be: ffmpeg -i input.mkv -c:a libopus -b:a 192k -vn output.weba
Yes, on Linux or macOS you can use a shell loop: for f in *.mkv; do ffmpeg -i "$f" -c:a libopus -b:a 128k -vn "${f%.mkv}.weba"; done. On Windows Command Prompt, use: for %f in (*.mkv) do ffmpeg -i "%f" -c:a libopus -b:a 128k -vn "%~nf.weba". The browser-based tool processes one file at a time, so the FFmpeg command is the practical approach for bulk conversions.
WEBA with Opus audio has strong support in Chromium-based browsers (Chrome, Edge, Opera) and Firefox, covering the vast majority of desktop and mobile web users. Safari added WebM/Opus support in Safari 16 on macOS Ventura and iOS 16, so modern Apple devices also support it. However, if you need universal compatibility including older Safari versions or certain embedded environments, MP3 or AAC in an M4A container may be a safer choice than WEBA.
Technical Notes
The WEBA format is essentially a WebM container restricted to audio-only content, and the libopus encoder used here is the reference implementation of the Opus codec (RFC 6716). Opus operates as a hybrid codec internally — it switches between SILK (optimized for speech) and CELT (optimized for music and general audio) modes depending on the content, making it unusually versatile. The default 128k bitrate in this conversion produces VBR-adjacent output because libopus uses a constrained variable bitrate mode by default rather than strict CBR, which means actual bitrate may fluctuate around the target for better efficiency. Metadata from the MKV — such as title, artist, or album tags — may or may not be preserved depending on how the tags are structured in the source file; MKV uses its own metadata schema and not all tags map cleanly to WebM's Matroska-subset tag structure. Chapters and subtitle timing data are completely dropped. One important limitation: if your MKV contains multiple audio tracks (e.g., a director's commentary alongside the main track), FFmpeg will default to the first mapped audio stream; use -map 0:a:1 (replacing 1 with the desired track index) to select a different one. WEBA files are not suitable for use cases requiring DRM, as the format has no native DRM support.