Convert M4A to OGG

Converting M4A to OGG moves audio out of Apple's container and into the royalty-free one that Wikimedia, free-software projects and several game engines require. One thing to know before you rely on the result: the Ogg written here holds Opus rather than Vorbis, which is the better codec and not always what a Vorbis-specific tool will accept.

  • Where it runs In your browser. The file is never uploaded.
  • Lossy Some detail is traded for size. OGG cannot hold everything an M4A can.
  • File size limit Up to 100 MB per file, free, without an account.
  • Worth knowing Both formats are compressed, so this is a second round of compression on audio that has already lost detail. Pick the highest quality band if the result is going to be edited or converted again.

Up to 100 files at once. Mixed formats are fine.

The Ogg written here contains Opus, not Vorbis

This belongs at the top rather than in a footnote, because it is the thing most likely to surprise someone downstream. Ogg is a container and the registry lists three codecs it can hold — Vorbis, Opus and FLAC. The extension `.ogg` has meant Vorbis to most people for twenty-five years, since that pairing predates the others. This converter writes Opus.

Opus is the better choice on the merits by a clear margin: published as RFC 6716 in 2012, it beats Vorbis at every bitrate and beats AAC and MP3 at low ones, which is why every browser ships it and why WebRTC made it mandatory. But merit is not the question if your destination was written to read Vorbis and nothing else. Check what the receiving tool actually requires before you convert a batch, because the file will look correct and be refused.

The extension question, and the two-second fix

Opus inside Ogg is exactly what RFC 7845 describes, and `.ogg` is a legitimate extension for it. Convention has nonetheless drifted: `.opus` has come to signal Opus-in-Ogg and `.ogg` to signal Vorbis-in-Ogg, and a surprising amount of software follows the convention rather than reading the stream header to find out.

When a file is refused for looking wrong rather than being wrong, renaming it from `.ogg` to `.opus` costs nothing and frequently resolves it. When it is refused because the tool genuinely needs Vorbis — some older engines, some archival ingest paths — no rename will help, and the correct instrument is a desktop encoder that can produce Vorbis. Saying so is more useful than leaving you to work it out from an error message.

Why anyone needs a royalty-free container

The reason is almost never how the file sounds. Wikimedia Commons accepts Ogg, WAV and FLAC and does not accept AAC, because the project's policy is to distribute media that anyone can decode without a licence. Linux distributions and free-software projects have long-standing rules against shipping patent-encumbered decoders. Game engines and open-source middleware adopted Ogg in the era when MP3 licensing was a real per-title cost, and never had reason to move.

M4A sits on the wrong side of all of that. It is Apple's container from 2004 holding AAC, an MPEG codec, and while the relevant patents have largely expired the policies were written when they had not. If a submission form or a contribution guideline names Ogg, this conversion is how you comply, and the licensing status is the entire point of it.

What the second encode costs, and why Opus softens it

The M4A almost certainly holds AAC, which permanently discarded parts of the recording. Decoding it and encoding with Opus discards a second helping, and the two encoders disagree about what matters, so the second one spends bits describing the first one's artefacts. That is the standard cost of any lossy-to-lossy conversion.

Opus makes it cheaper than most. It is efficient enough that 64 kbps is a usable music bitrate and 128 kbps is generous, where MP3 needs 160 to 192 for the same impression — so the second pass can be given plenty of headroom without producing a large file. On speech, narration and game voice lines the difference from the source is essentially undetectable. On dense music, choose High quality and stop worrying about it.

The Opus bitrates, which are not the numbers you are used to

The Quality control resolves per codec, and Opus lands much lower than the figures people carry around from MP3. Small file writes 38 kbps, Balanced writes 64 and High quality writes 128. A four-minute track lands near 1.1 MB, 1.9 MB and 3.8 MB.

Those numbers look alarming if you are used to thinking in MP3 terms, and they should not. Opus at 64 kbps is a genuinely pleasant stereo music bitrate and at 38 kbps speech is completely clear — this is the codec messaging apps use at 16 to 32 kbps for voice notes. If the destination is a game engine loading hundreds of assets, Small file is often the correct engineering decision rather than a compromise.

Metadata maps across cleanly

Ogg has no global metadata block; it carries tags as Vorbis-style comment headers attached to the stream, which is a plain list of uppercase key-value pairs. Title, artist, album, album artist, track and disc numbers, genre, date, comment and lyrics all map from the MP4 atoms and arrive intact.

Cover art is carried as a METADATA_BLOCK_PICTURE comment holding an encoded picture block, which is the standard mechanism and what foobar2000, VLC, Rhythmbox and the media servers all read. What is dropped is the Apple-specific layer — purchase records, store identifiers, custom atoms — which has no Vorbis-comment equivalent and is removed rather than transliterated into keys nothing will read.

An Apple Lossless M4A cannot be converted here

The registry lists AAC and ALAC as the two codecs M4A carries, and a file ripped from a CD in iTunes may well hold Apple Lossless. ALAC is not among the codecs available on this decoding path, so such a file stops with a message saying nothing in it could be converted rather than producing a broken Ogg.

Size identifies which kind you have before you start: four minutes of AAC is three to five megabytes against twenty to thirty for Apple Lossless. If it is ALAC and your requirement is a free format, the right destination is FLAC rather than Ogg — lossless to lossless, no second encode, and accepted by Wikimedia Commons on the same policy grounds. Converting a lossless master to a lossy Opus file to satisfy a licensing rule would be throwing away the one thing worth keeping.

Channels, rates and the timestamp clock

Opus is generous where MP3 is not: the registry records it as supporting up to 255 channels against MP3's two, so a multichannel M4A does not have to be folded down. Ordinary mono and stereo material passes through as it was.

One structural detail is worth knowing for anything that has to line up with something else. Opus works on a fixed 48,000 Hz clock — a decoder reports that rate regardless of what the encoder was given — so a converted file presents as 48 kHz even when the M4A was 44,100. Nothing is wrong with it, and no listener will hear a difference, but a pipeline that assumed the sample rate would be preserved should be told otherwise before it starts writing timestamps.

The only conversion here that needs no extra download

Opus is the one audio target with no encoder problem anywhere. Every browser had to implement it for calls, so it is available natively on every machine — no WebAssembly package is fetched, unlike the MP3, AAC and FLAC paths, and the conversion starts immediately.

Combined with the decoder your device already has for AAC, that means the whole operation happens in the tab with nothing downloaded and nothing uploaded. Files up to 100 MB are handled and a folder comes back as a ZIP. For material headed to a public archive that is a useful property in its own right: the file becomes a contribution when you upload it deliberately, not when you convert it.

How to convert an M4A into an OGG file

  1. Check whether your destination requires Vorbis specifically — this writes Opus inside Ogg.
  2. Drop the M4A onto this page, or click to choose one, and pick a quality band.
  3. Download the OGG. Rename it to .opus if the receiving software expects that extension.

M4A and OGG contrasted: a proprietary container against a free one

M4A compared with OGG
M4AOGG
Full nameMPEG-4 AudioOgg Audio
File extension.m4a.ogg, .oga
Media typeaudio/mp4audio/ogg
CompressionLossy — file size is bought with qualityLossy — file size is bought with quality
First published20042000
Published byAppleXiph.Org
SpecificationRFC 3533
LicensingPublished, not standardisedOpen standard
Standing todayCurrentCurrent
Audio channelsup to 48
Opens in a browserEvery browserCurrent browsers
Considered insteadMP3, FLACMP3, AAC, OPUS

What survives

document properties can cross over — both M4A and OGG have somewhere to store it.

Opening the result

Current browsers read OGG; older ones do not. It is the less portable of the two, so it is worth being sure the program at the other end accepts it before sending one.

OGG is a container rather than a single format. What actually plays is the codec inside it — usually Vorbis, Opus and FLAC — which is why two files with the same extension can behave differently on the same device.

VLC reads both M4A and OGG, so there is a way to check the result against the original without a second tool.

What each format is for

OGG comes from Xiph.Org and dates from 2000, specified as RFC 3533. Audacity, VLC and foobar2000 all read it.

M4A to OGG: licensing, codecs and what you get

Will the .ogg contain Vorbis or Opus?

Opus. This converter writes Ogg with Opus inside it, not Vorbis, and that is worth knowing before you rely on the result. Opus is the newer and better codec — RFC 6716, 2012, and comfortably better than Vorbis at every bitrate — but a tool that was written for Vorbis specifically will reject the file even though the extension matches. If your target requires Vorbis by name, this is not the conversion for you.

Is .ogg the right extension for an Opus file?

It is valid and it is sometimes not what people expect. Opus in an Ogg container is exactly what RFC 7845 specifies, and `.ogg` is a legitimate extension for it — but the convention has drifted towards `.opus` for Opus-in-Ogg and `.ogg` for Vorbis-in-Ogg. Some software follows the convention rather than reading the file. If yours does, renaming the file to `.opus` costs nothing and often solves it.

Why would I need Ogg rather than M4A?

Policy, almost always. Wikimedia Commons accepts Ogg and WAV and FLAC and not AAC. Free-software projects and Linux distributions have long-standing rules against shipping patent-encumbered decoders. Some game engines and open-source middleware read Ogg natively. In every one of those cases the requirement is about licensing rather than about how the file sounds, and Ogg is the answer the requirement was written for.

Does converting M4A to OGG lose quality?

Yes — the M4A held AAC, which had already discarded detail permanently, and Opus discards a second helping using different rules. At Balanced, which writes 64 kbps for Opus, that is barely perceptible on speech and audible on demanding music; High quality writes 128 kbps and is a safer choice for anything musical. Opus is efficient enough that these numbers go much further than the equivalent MP3 or AAC figures.

What happens to the tags and the cover art?

They come across. Ogg stores metadata as Vorbis-style comments, so title, artist, album, album artist, track and disc numbers, genre, date, comment and lyrics all map from the MP4 atoms, and embedded artwork is written as a METADATA_BLOCK_PICTURE comment — the standard way to carry a cover in an Ogg. Apple-specific atoms with no equivalent are dropped rather than written as junk keys.

Is the M4A uploaded to convert it?

No. The AAC is decoded by your own device the Opus encoder comes from the browser itself through WebCodecs — Chrome and Edge since 94, Firefox since 130, Safari since 26 — so this conversion downloads no extra package and contacts no server. An older browser is told it cannot make the file rather than being quietly sent somewhere that can. Nothing carrying the audio leaves the machine, which you can confirm in the network tab of your developer tools while a conversion runs.

More about these formats