Convert AAC to OPUS

Converting AAC to OPUS is what a growing archive of recorded audio does when the disk runs out. An hour captured at 128 kbps AAC drops from about 57 MB to roughly 17 MB at the smallest Opus band and stays entirely intelligible, because Opus was designed for speech at rates this low.

  • Where it runs In your browser. The file is never uploaded.
  • Lossy Some detail is traded for size. OPUS cannot hold everything an AAC 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.

Gigabytes a year, which is the number that brought you here

Single files are not the problem in this job; accumulation is. A feed captured continuously at 128 kbps AAC costs about 57 MB an hour, 1.4 GB a day and roughly 500 GB a year. Two feeds fill a terabyte drive inside a year, and the archive keeps growing whether or not anyone has listened to any of it.

Opus changes the slope rather than the intercept. At the Small file band it writes 38 kbps, putting the same continuous year near 150 GB; Balanced writes 64 kbps for about 250 GB. Those are the figures that decide whether a retention policy is three years or ten, and they are the entire argument for this conversion — nothing about it improves a single recording.

Why Opus survives at rates where AAC starts to fail

AAC was standardised in 1997 and Opus in 2012, out of two codecs designed for different jobs — one for speech, one for music — that Opus switches between according to what it hears. That design is why it holds together at 32 and 48 kbps, where AAC and MP3 both begin to produce artefacts a listener notices.

For an archive of talk that is the whole point. AAC at 38 kbps would be a poor recording; Opus at 38 kbps is what a voice call sounds like, which is more than adequate for radio traffic, proceedings, lectures and monitored feeds. If the material is music, the calculation is different and the low band is not appropriate — take Balanced or High quality there and accept a smaller saving.

Two lossy encoders in a row, and what the second cannot see

The AAC discarded parts of the signal permanently when it was captured, using a model of what a listener would not miss. Opus now works on what is left and makes its own decisions, spending part of its budget describing the first encoder's artefacts as though they were content. Nothing about a second encode is free and no setting avoids it.

What makes it acceptable here is the source. Captured streams have usually been through a broadcast chain, a codec at the transmitter and a network before they reached your disk, so the recording was never a faithful document of a room. Re-encoding a copy that is already several generations down costs less, proportionally, than re-encoding a master would. If the archive has evidential weight, that reasoning does not apply and the AAC should be kept.

A .aac file is a stream with no header to read

The source here is Audio Data Transport Stream framing: AAC frames one after another, each repeating the sample rate and channel configuration in a short header, with nothing wrapped around them. There is no container, no index and no duration field, which is deliberate — the format exists so a stream can be cut anywhere and joined to anything.

For an archive that has two consequences. The length of a recording is not stated anywhere in the file and has to be worked out by scanning, which is why some players report the wrong duration or refuse to seek. And there is no metadata area at all, so every fact about a capture — when, from where, which channel — lives in the file name and the directory it sits in, or nowhere.

The Ogg container gives the archive somewhere to write things down

Opus here is written inside an Ogg container, and Ogg carries Vorbis-style comments: an open list of uppercase keys with text values, as many as you like. That is the first point in this chain where a recording can state its own date, source, channel, operator and retention class inside the file rather than in a path.

It is worth doing at conversion time rather than later. An archive that depends on its directory structure loses its catalogue the first time somebody reorganises a drive or restores a backup into the wrong place; an archive whose files describe themselves survives that. A tagger can write the fields in bulk, and once they are in the Ogg they travel with every subsequent copy.

Mono, and the halving most speech archives are entitled to

A great deal of captured talk is mono at source or effectively mono — a single transmitter, one microphone, a conference mix summed before it left the room — and storing two identical channels wastes half the bitrate. Where a capture is genuinely single-source, summing to mono before conversion roughly halves the result again on top of the codec saving.

There is no channel control on this page, so a stereo AAC produces a stereo Opus and the reduction has to be done in an editor or a batch tool first. Where the two channels carry different content — two radio channels captured together, a stereo conference feed with separated speakers — leave it alone, because the separation is the part that makes a recording usable later.

Everything comes out at 48 kHz, and captures vary

Opus runs on a fixed 48,000 Hz clock and a decoder reports that rate regardless of what the encoder was handed. Broadcast and conference captures are usually 48,000 Hz already so nothing appears to change; a 44,100 Hz capture, or a 32,000 Hz one from a narrowband feed, will nonetheless present as 48 kHz afterwards.

No listener will detect it and no player will object. It matters if a cataloguing script reads the technical sample rate out of each file and logs it, because the converted archive will report one figure where the originals reported several. Record the source rate in a tag during conversion if that distinction has any meaning for the collection, since it is otherwise erased.

Three bands, priced in hours rather than tracks

Small file writes 38 kbps, Balanced 64 and High quality 128. In storage terms that is roughly 17, 29 and 58 MB per recorded hour. For an archive the right question is not which sounds best but how many years of retention each one buys on the disk you actually have.

The pragmatic answer for talk is Small file for routine material and Balanced for anything that might be quoted, transcribed or broadcast again. High quality is for music and for recordings that will be edited afterwards, where leaving the encoder room stops it adding audible damage of its own. Converting a sample month at two bands and listening to both is a better decision procedure than any table.

Batches of captures, converted without leaving the machine

Files are capped at 100 MB each, which is about three and a half hours of 64 kbps AAC or fifty minutes at 256, and a hundred can be dropped in one pass and taken back as a ZIP. Captures usually arrive as segments already, which fits this shape well — a day's worth of hourly files is one drop.

Opus is the only audio target here that downloads no encoder, since every browser implemented it for calls, and the AAC decoder is already on your machine. So a batch runs entirely in the tab with the network idle. For monitored feeds, intercepted traffic or anything recorded under a confidentiality obligation, that is not a convenience but the condition on which the conversion can happen at all.

How to re-encode AAC recordings as OPUS files

  1. Drop a folder of AAC recordings onto this page, or click to choose them.
  2. Pick a band — Small file writes 38 kbps and suits speech archives.
  3. Download the OPUS files as a ZIP, and write the source and date into their tags.

AAC and OPUS as storage: two lossy codecs, different eras

AAC compared with OPUS
AACOPUS
Full nameAdvanced Audio CodingOpus Audio
File extension.aac.opus
Media typeaudio/aacaudio/opus
CompressionLossy — file size is bought with qualityLossy — file size is bought with quality
First published19972012
Published byMPEGXiph.Org
SpecificationISO/IEC 13818-7RFC 6716
LicensingOpen standardOpen standard
Standing todayCurrentCurrent
Audio channelsup to 48up to 255
Opens in a browserEvery browserCurrent browsers
Considered insteadMP3MP3

Opening the result

Current browsers read OPUS; 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.

VLC and FFmpeg read both AAC and OPUS, so there is a way to check the result against the original without a second tool.

File size and quality

Both AAC and OPUS are lossy, so this is a second compression on top of the first. It is worth starting from the original if there is one; each round trip costs a little more than the last.

What each format is for

AAC is MPEG's format, published in 1997. The specification is ISO/IEC 13818-7, and it is worth reading if the file has to outlive the tool that wrote it.

OPUS comes from Xiph.Org and dates from 2012, specified as RFC 6716. VLC, FFmpeg and Audacity all read it.

AAC was published in 1997 and OPUS in 2012. The older one is generally the safer file to hand to somebody; the newer one usually does the job in fewer bytes.

AAC to OPUS: storage arithmetic and archive practice

How much disk does this actually save?

A stream captured at 128 kbps AAC costs about 57 MB an hour, or 500 GB a year if it runs continuously. Re-encoded at the Small file band, which writes 38 kbps Opus, the same hour is about 17 MB and the same year about 150 GB. At Balanced, 64 kbps, it is 29 MB an hour and about 250 GB a year.

Is 38 kbps enough for speech?

Yes, comfortably. Opus was built for real-time voice and messaging apps run voice notes on it at 16 to 32 kbps. At 38 kbps a broadcast, a lecture or radio traffic is fully intelligible, and what limits an archive of this kind is almost always the original signal — a noisy feed, a compressed broadcast chain, a bad microphone — rather than the storage codec.

Is this the same as converting AAC to OGG?

Yes, exactly. Both targets write an Opus stream inside an Ogg container using the same encoder; only the extension differs. The .opus name is the one convention has settled on for Opus-in-Ogg and is the better choice for an archive, because it tells a future reader what is inside without opening the file.

Should I convert or keep the AAC?

Keep the AAC if the material has evidential value or might need to be re-examined closely, because every re-encode is irreversible and adds its own damage. Convert if the archive is a reference record of speech and the alternative is deleting older material to make room. Halving or thirding the storage is only worth it when the recordings are worth keeping longer than the disk lasts.

Do the recordings keep their names and dates?

Only what is in the file name. A bare .aac stream has no metadata area at all, so there is nothing to carry across and the Opus file arrives with an empty comment header. Ogg does have a proper tag block, so this is the right point in the chain to write a date, a source and a channel into the file itself rather than relying on a directory structure.

Does anything get uploaded?

No. The AAC is decoded by your own machine and Opus needs no encoder download, so the conversion begins immediately and the network stays idle. Files are capped at 100 MB each — around three and a half hours of 64 kbps AAC — and a hundred can be dropped at once and taken back as a ZIP.

More about these formats