How do you convert a WebM screen or voice recording to MP3?
Short answer: drop the .webm on the video to MP3 page, set the sample rate to 48 kHz, keep 192 kbps, and press Convert. It takes screen recordings with a picture and audio-only recordings alike. In Chromium, all 16 WebM files we made converted, including browser recordings that carry no length at all.
- Pick 48 kHz. Most WebM sound is Opus, which always runs at 48 kHz. At 48 kHz the WAV we saved matched FFmpeg's decode sample for sample (8,640,000 of 8,640,000); at 44.1 kHz the browser resamples first.
- 192 kbps is enough. From a 128 kbps Opus recording, MP3 at 192 kbps scored 21.0 dB against the original music; the recording itself scored 21.9 dB. 320 kbps added 0.8 dB. 128 kbps dropped to 14.5 dB.
- Size: 1.44 MB per minute at 192 kbps. A 3-minute screen recording of 10.3 MB became a 4.3 MB MP3; a 30-minute one of 54.6 MB became 41.2 MB in 189 s.
- "Length unknown" is normal for a recording made by a web page in pieces: the file has no length written in it. It still converts. Our 30-second piece-by-piece recording came out as 29.940 s, the same as FFmpeg's decode.
- Check the end box. The page fills it from the length the file declares, rounded to 0.1 s. A browser recording declared 59.906 s but held 60.000 s of sound, so 0.100 s at the end was cut until we cleared the box.
If you want to keep only part of the recording, open it in the audio cutter instead: it also opened every WebM, showed the true length, and saves MP3 or WAV at 44.1 kHz.
What a WebM file is
WebM is a container, a wrapper around compressed picture and sound. The WebM container guidelines (read 2026-10-18) say it "comprises a subset of the Matroska multimedia container format", that the video codec "SHOULD be VP8 or VP9" and the audio codec "SHOULD be Vorbis or Opus", and that audio-only files should carry the type audio/webm. So a .webm may be:
- A screen recording or a web video: VP8 or VP9 picture with Opus or, in older files, Vorbis sound.
- Sound only: what a web page's record button saves. In Chromium 153 we asked the recorder for its default and got audio/webm with Opus at 128,000 bits per second, for mono as well as stereo. Chromium also accepted Opus or uncompressed PCM in WebM, but refused Vorbis, Ogg, MP3 and WAV as recording formats (full list below). The MediaStream Recording draft (W3C Working Draft, 16 March 2026) does not prescribe a container or a bitrate; the browser chooses, which is why Chromium-based browsers hand you WebM.
Only the sound is decoded when you convert, so the picture codec does not matter. The Chromium project's Audio/Video page (read 2026-10-18) lists WebM and Matroska as containers and Opus and Vorbis as codecs, which is why Chrome and Edge open these files; we did not test Safari or Firefox, so we don't know how they behave. For MP4, MOV and MKV videos see How do you get the audio out of a video file?; for .ogg and .opus files see How do you convert OGG to MP3?.
How we tested
- Music: Mozart's Symphony No. 40, first movement, played by the Musopen Symphony, in the public domain on Wikimedia Commons as a 48 kHz, 24-bit FLAC. We used 1:00 to 4:00.
- Made with FFmpeg 4.4.2: two 3-minute "screen recordings" (VP9 picture with Opus 128 kbps; VP8 with Vorbis quality 5), two audio-only WebMs (Opus 128 kbps; Vorbis quality 5), two "live" WebMs written without a length or an index (stereo Opus 128 kbps; mono Opus 32 kbps in voice mode), the Opus file renamed .weba and rewrapped as .mkv, and a 30-minute VP9 + Opus 96 kbps screen recording of 54.6 MB.
- Made by the browser itself: Chromium 153's MediaRecorder recording the first 60 s of the music through an AudioContext, as a web page's record button would: audio-only stereo, audio-only mono, the browser's default format (10 s), two screen-recording-like files (VP8 and VP9 picture from a canvas plus the music), and two recordings taken in 1-second pieces (30 s), the way recorder pages that upload while recording work.
- Pages: Chromium 153 driven by Playwright 1.63 on a local copy of this site. Every file went through the video to MP3 page (MP3 192 kbps at 48 kHz and WAV at 48 kHz; more settings for the first file) and six of them through the audio cutter (whole file, no fades, WAV and MP3 192 kbps).
- Score: signal-to-error ratio in dB against the 24-bit original at the output sample rate, after lining the files up. Higher is closer. It measures how far the waveform moved, not how it sounds; compare rows with each other.
Which WebM files opened
| File | Inside | Length in file | Length shown | Converted | WAV length |
|---|---|---|---|---|---|
| Screen recording, FFmpeg | VP9 + Opus 128 | 180.008 s | 3:00.0 | yes | 8,640,000 samples = FFmpeg |
| Screen recording, FFmpeg | VP8 + Vorbis | 180.003 s | 3:00.0 | yes | 7,938,000 at 44.1 kHz, 48 fewer than FFmpeg |
| Audio only, FFmpeg | Opus 128 | 180.008 s | 3:00.0 | yes | 8,640,000 = FFmpeg |
| Audio only, FFmpeg | Vorbis | 180.003 s | 3:00.0 | yes | 7,938,000 at 44.1 kHz |
| Live, FFmpeg | Opus 128 | none | length unknown | yes | 8,640,000 = FFmpeg |
| Live, FFmpeg, mono | Opus 32 voice | none | length unknown | yes, mono | 8,640,000 = FFmpeg |
| Same Opus as .mkv / .weba | Opus 128 | 180.021 / 180.008 s | 3:00.0 | yes | same MP3 size as .webm |
| Browser recording, stereo | Opus 128 | 59.906 s | 0:59.9 | yes | 2,875,200; FFmpeg 2,880,000 |
| Browser recording, mono | Opus 128 | 59.861 s | 0:59.9 | yes, mono | 2,875,200; FFmpeg 2,877,120 |
| Browser recording, default | Opus 128 | 9.899 s | 0:09.9 | yes | not saved as WAV |
| Browser screen recording | VP8 + Opus 128 | 59.979 s | 0:60.0 | yes | 2,880,000 = FFmpeg |
| Browser screen recording | VP9 + Opus 128 | 59.968 s | 0:60.0 | yes | 2,877,120 = FFmpeg |
| Browser recording in 1-s pieces | Opus 128 | none | length unknown | yes | 1,437,120 = FFmpeg |
| Browser screen recording in pieces | VP8 + Opus 128 | none | length unknown | yes | 1,438,848 as MP3 |
| 30-minute screen recording | VP9 + Opus 96 | 1800.008 s | 30:00.0 + long-file note | yes, 189 s | 86,401,152 as MP3 |
Every file converted. The page lists a file within 0.2 s and decodes it when you press Convert. The .mkv and .weba copies converted too, though the file picker is set to show .webm and video files, so you may have to switch it to all files. We did not look at tags: none of our WebM files carried any.
The 0:60.0 shown for two recordings and the 2:60.0 that the page printed for a 44.1 kHz output are a display rounding fault in the page (3:00.0 and 1:00.0 would be right); the files themselves are fine.
Why a recording says "length unknown", and what happens to it
A WebM written in one go ends with a Duration value and a Cues index, both of which a player needs to show the length and jump around. Our non-chunked Chromium 153 recordings had both (59.906 s written for the stereo one), as did every FFmpeg file. The two recordings made in 1-second pieces had neither, and their Segment and Cluster sizes were marked unknown, which is what a recorder must write when it does not yet know how long the recording will be. FFmpeg's probe reports their length as N/A, the page's media element reports no length, and the page prints "length unknown". The WebM guidelines say that seeking is disabled without a Cues element.
Decoding does not need any of this. The page reads the whole file and decodes every packet: the piece-by-piece recording gave 1,437,120 samples at 48 kHz, 29.940 s, exactly FFmpeg's count, and the cutter showed 0:29.940 for the same file. Our two "live" FFmpeg files without a Duration also decoded to the full 8,640,000 samples. So an unknown length is a display problem, not a lost-sound problem, and you do not need a repair tool before converting.
The opposite case cost sound. The non-chunked stereo recording declared 59.906 s but decoded to 60.000 s in FFmpeg and in the cutter (2,645,999 samples at 44.1 kHz). The video to MP3 page copies the declared length, rounded to 0.1 s, into the end box of the file, so it stopped at 59.9 s: 2,875,200 samples, 4,800 short, 0.100 s of the ending gone. The mono recording lost 1,920 samples (0.040 s) the same way. Clear the end box, or type a larger value, and the page converts to the real end. Files whose declared length rounds up, such as the screen recording declared at 59.979 s, lost nothing.
Bitrate and sample rate: what the MP3 keeps
| Source (3 min) | Source score | Output | Score | Bytes | Per minute |
|---|---|---|---|---|---|
| VP9 + Opus 128, 10,338,584 B | 21.9 dB | MP3 128 kbps, 48 kHz | 14.5 dB | 2,880,384 | 0.96 MB |
| MP3 192 kbps, 48 kHz | 21.0 dB | 4,320,576 | 1.44 MB | ||
| MP3 192 kbps, 44.1 kHz | 21.0 dB | 4,320,862 | 1.44 MB | ||
| MP3 320 kbps, 48 kHz | 21.8 dB | 7,200,960 | 2.40 MB | ||
| WAV 16-bit, 48 kHz | 21.9 dB | 34,560,044 | 11.52 MB | ||
| VP8 + Vorbis q5, 10,328,681 B | 23.8 dB | MP3 192 kbps, 48 kHz | 22.3 dB | 4,320,576 | 1.44 MB |
| MP3 192 kbps, 44.1 kHz | 22.4 dB | 4,320,862 | 1.44 MB | ||
| WAV 16-bit, 44.1 kHz | 23.8 dB | 31,752,044 | 10.58 MB | ||
| Browser recording, Opus 128 (60 s) | 21.4 dB | MP3 192 kbps, 48 kHz | 20.6 dB | 1,438,272 | 1.44 MB |
| WAV 16-bit, 48 kHz | 21.4 dB | 11,500,844 | 11.52 MB |
The MP3 cannot score higher than the WebM's sound, which was already compressed once. At 192 kbps it stayed within 0.9 dB of the Opus source and within 1.5 dB of the Vorbis source; 320 kbps bought another 0.8 dB for 1.67 times the bytes; 128 kbps lost 7.4 dB. The MP3 is bigger than an audio-only WebM: 4.32 MB against 3.06 MB for the Opus file (141%), because MP3 needs more bits than Opus for the same waveform. For a screen recording the picture is most of the file, so the MP3 is smaller: 41.8% of the 3-minute file, 79.1% of the 30-minute one, whose picture was small and the sound 96 kbps.
48 or 44.1 kHz. Opus is decoded at 48 kHz, so at 48 kHz the WAV is the decoder's output, 73.5 dB against FFmpeg's decode of the same file (16-bit rounding is all that is left). At 44.1 kHz the browser resamples first: 65.5 dB against FFmpeg's 44.1 kHz decode, and the Vorbis file, which was 44.1 kHz to begin with, is best left at 44.1 kHz. The MP3 scores were the same at both rates to 0.1 dB, and so were the sizes to 286 bytes, so the choice matters for WAV, not for MP3. The audio cutter always saves at 44.1 kHz.
Mono. The mono recording and the mono live file came out as mono MP3s and WAVs; the WAV is half the size (17,280,044 bytes for 3 minutes), the MP3 is the same size as stereo at the same bitrate. The recorder also wrote the mono recording at 128,000 bits per second, 965,362 bytes for 60 s against 966,328 for stereo, so recording in mono does not make the WebM smaller.
Length of the MP3. Every MP3 came out 1,152 samples (0.024 s at 48 kHz) longer than the decoded sound, with the music starting 1,105 samples late: the encoder's start-up padding and whole-frame rounding, the same as on the other pages (Why are there gaps between joined MP3 files?). WAV keeps the exact length.
How long it took
| File | Output | Time | Peak browser memory |
|---|---|---|---|
| 3-minute stereo WebM (seven files) | MP3 192 kbps | 17.5 to 19.8 s | 708 to 730 MB |
| 3-minute mono WebM | MP3 192 kbps | 9.9 s | 690 MB |
| 3-minute screen recording | MP3 128 / 320 kbps | 24.0 / 21.8 s | 713 / 708 MB |
| 3-minute stereo WebM | WAV | 1.1 to 1.5 s | 565 to 621 MB |
| 60-second browser recording | MP3 192 kbps | 3.9 to 6.4 s | 650 to 685 MB |
| 30-minute screen recording, 54.6 MB | MP3 192 kbps, 41.2 MB | 189.2 s | 1,768 MB |
| 3-minute WebM in the audio cutter | open / WAV / MP3 192 | 1.7 to 1.8 s / 2.0 s / 17.1 s | not measured |
Encoding the MP3 is the slow part; decoding the WebM is quick, so WAV is 13 to 16 times faster. The 30-minute file needed 1.77 GB; the page warns above 30 minutes, and How long a file can an online MP3 cutter open? shows where the browser runs out of memory. We did not test longer WebM files.
Steps
- Open the video to MP3 page and choose the .webm, or several at once. Screen recordings and audio-only recordings both go here.
- Set Sample rate to 48 kHz. Leave MP3 at 192 kbps, or pick WAV if another program will edit the sound further.
- If the file says "length unknown", nothing is wrong; just convert. If it shows a length, clear the end box of a browser recording so the last fraction of a second is kept.
- Press Convert, then Download. The file is decoded and encoded in your browser; it is not uploaded.
- To keep only a part, use the audio cutter instead: it opens the same files, shows the exact length, and lets you set the start and end to the millisecond.
Questions
Which formats can a browser record in the first place?
We asked Chromium 153 which types MediaRecorder accepts. Yes: audio/webm, audio/webm with Opus, audio/webm with PCM, audio/mp4, video/webm with VP8, VP9, AV1 or H.264 picture and Opus, video/mp4, video/x-matroska with H.264 and Opus. No: audio/webm with Vorbis, audio/ogg, audio/mpeg, audio/mp3, audio/wav. So a recorder page that asks for the default on a Chromium browser gets WebM with Opus; a page that asks for audio/mp4 gets an M4A-style file instead, which the M4A to MP3 page handles. Other browsers may differ; we did not test them.
Can I fix the missing length instead of converting?
Not on this site. Converting to MP3 or WAV sidesteps the problem: both outputs carry their length, and our outputs from the length-less files were the full recordings. If you need the WebM itself to show a length, that takes a tool that rewrites the file's Duration element, which we did not test.
Is a .weba file the same thing?
In our test, yes: the audio-only Opus WebM renamed .weba converted to an MP3 of the same size and length. The WebM guidelines list only .webm as the extension, and audio/webm as the type for audio-only files.