Convert OGG to MP3
Get an MP3 out of a file whose extension does not say what it holds.
How it works
An .ogg file does not tell you what is inside it. Ogg is a container from the Xiph.Org Foundation, specified in RFC 3533: a stream of pages, each carrying a serial number, a granule position used for seeking, and a CRC over its own contents. What those pages hold is declared by a codec header on the first page. The audio underneath is one of two codecs, designed roughly a decade apart for different jobs, and which one arrived changes the advice on this page.
Vorbis is the older one, stable since Xiph published the 1.0 release in July 2002. It is the codec in a generation of PC games that wanted no patent licence, in the audio Wikimedia Commons has served since long before browsers agreed on a common format, and in the Ogg downloads Bandcamp offers beside the MP3 and the FLAC. A Vorbis file usually reached you because some program chose a format on principle.
Opus, and why a voice note is often an .ogg
Opus was standardised as RFC 6716 in September 2012 and covers a far wider range than Vorbis, from 6 kbit/s to 510 kbit/s, switching internally between a speech coder and a music transform as the signal demands. RFC 7874 requires every WebRTC implementation to support it, so it carries browser calls, Discord audio and the voice messages that arrive from Telegram or WhatsApp. Naming never caught up. RFC 5334 asks for .oga on Ogg audio and RFC 7845 asks for .opus on Ogg Opus, while exporters keep writing .ogg regardless, so a recording taken off a phone is frequently Opus wearing the older extension.
What bitrate the MP3 needs
The distance between the two codecs is widest exactly where voice notes live. MPEG-1 Layer III, ISO/IEC 11172-3, defines no bitrate below 32 kbit/s at 44.1 kHz; the half-rate extension in ISO/IEC 13818-3 reaches 8 kbit/s, and only at 16, 22.05 or 24 kHz. Opus starts at 6 kbit/s without changing its sample rate or its container. Re-encoding a 32 kbit/s Opus note as a 32 kbit/s MP3 hands the weaker coder an identical budget, and the result is audibly worse than the recording it came from.
So the working rule is to triple it. A 32 kbit/s Opus source wants a 96 kbit/s MP3, which gives the second encode enough room that what it discards stays below what the first encode already threw away. The multiplier falls as the source rate climbs, because the Opus advantage falls with it: a 128 kbit/s Vorbis album track is comfortable at 192, about one and a half times. Under 64 kbit/s, treat three times as a floor rather than a target.
Reasons to leave the container behind
Playback is the common one. Safari shipped no Ogg decoder at all until version 26, so an .ogg posted to a web page is silent on any iPhone older than that while the same audio as MP3 plays everywhere. Podcast publishing is another: an RSS enclosure is expected to be MP3 carrying ID3 tags, and hosting platforms validate for it. Then there are upload forms that accept a single extension, and audio software finished before 2012 that has never heard of either codec.
Because the extension is unreliable, the result line names the codec that was actually found beside the duration and sample rate. Seeing Opus on a file you assumed was Vorbis is the case where the tripling rule matters, and it is worth a second look at the bitrate before you keep the MP3.
Questions
How do I tell whether my file is Vorbis or Opus?
Drop it here and read the result line, which reports the codec it parsed out of the first Ogg page rather than guessing from the name. Failing that, a hex editor shows it: the bytes 'vorbis' or 'OpusHead' appear within the first forty bytes of the file, immediately after the OggS page header.
Is my audio uploaded?
No, and the Network tab settles it in about ten seconds. Every request this page makes is a same-origin GET for its own code and for the WebAssembly MP3 encoder, all of which arrive before you drop anything. Vorbis and Opus are decoded by the browser's built-in decoders, the encode runs in a Web Worker on your machine, and no request goes out afterwards at all.
Why is the MP3 larger than the file I started with?
Because Opus at a low rate has no MP3 equivalent. A 10.8-second Opus speech clip measured here was 9,657 bytes, about 7 kbit/s; the same audio written as a 96 kbit/s MP3 came back at 130,344 bytes, thirteen times larger and still not as good. That is the distance between the two formats rather than a fault in the conversion, and it is the reason to keep the original.
What about .ogv, or an Ogg with a video track in it?
The audio track is converted and the picture is discarded, so a Theora video becomes an MP3 of its soundtrack. Measured here: a 2,154,790-byte .ogv came back as a 712,358-byte MP3 of its 44-second Vorbis track. A file with no audio track at all is refused with that as the reason, since there is nothing in it this page could write.