Convert Opus to AAC Online for Free

Make an AAC compatibility copy from Opus while preserving the intended timeline, choosing the right AAC transport, and checking the receiver.

TO
  1. Add a file Choose or drop it here
  2. Pick the format Change it whenever needed
  3. Download the result After conversion completes

Convert Opus to AAC as a Decode-and-Re-encode Job, Not a Filename Change

Opus and AAC are incompatible lossy codecs. An Ogg Opus file contains Ogg pages and compressed Opus packets; an AAC receiver expects newly encoded AAC access units in a transport it recognises. A real conversion therefore decodes the intended Opus programme to PCM and feeds that PCM to an AAC encoder. Renaming .opus to .aac changes neither the Ogg container nor the codec packets, so it cannot make an AAC-only device play the file.

This is useful when a player, mobile application, upload form, broadcast chain, or embedded product explicitly accepts AAC but not Opus. It is not a quality upgrade. Opus has already discarded information according to a perceptual model; a high-bitrate AAC encode cannot recover it. Keep the Opus original and, when one exists, the lossless master. If another AAC profile or rate is required later, encode again from the best available source rather than converting the newly made AAC a second time.

Confirm what the destination actually means by “AAC” before starting. Some specifications require raw ADTS-framed AAC with a .aac extension, while music-library workflows often require AAC carried in an M4A/MP4 container. The audio codec can be AAC in both cases, yet the receiving software can reject the wrong package, lose artwork, or calculate duration differently.


Decode Ogg Opus on Its Intended Sample Timeline Before Feeding the AAC Encoder

RFC 7845 defines Ogg Opus identification data in an OpusHead packet. It includes a version, channel count, pre-skip, an original-input-rate field, output gain, and a channel-mapping family. The input-rate field is informational rather than an instruction to a decoder; it does not prove the effective bandwidth of the original recording or determine Ogg Opus timing. A compliant workflow reads the container and stream headers instead of guessing the programme from its filename.

Ogg page granule positions use a 48,000-samples-per-second clock per channel. The playable position is derived from the granule position after subtracting the declared pre-skip. That pre-skip lets a decoder discard initial samples associated with codec delay, and final granule timing tells it how to trim a final packet that runs beyond the programme. Passing undecoded initial samples into AAC can create a small non-musical lead-in; mishandling the end can clip a fade or lengthen a file.

This matters especially for a loop, podcast edit, audiobook chapter, or picture-locked cue. Establish the source’s audible start and end after pre-skip and final trimming, then encode that continuous PCM. Do not compare only rounded duration labels: a player may report seconds differently while still presenting correct audio. Instead, listen to the first transient, a seek close to the end, and the final word or fade in the actual receiving application.


Separate Opus Packet Durations from the Sample Rate and Frame Grid Used by AAC

Opus operates internally on a 48 kHz clock and its codec frames can represent 2.5, 5, 10, 20, 40, or 60 milliseconds; an Ogg packet may contain more than one frame within the format limits. Those packet boundaries are not AAC frame boundaries. They disappear when the Opus decoder produces PCM. AAC creates its own access units from that decoded audio, so an Opus packet count is not a reliable way to predict the number of output frames, duration, or file size.

Preserve a 48 kHz output when the target accepts it and the delivery requirement does not say otherwise. Resample once to 44.1 kHz, 32 kHz, or another supported rate only when there is a concrete receiver requirement. The fixed Ogg Opus clock is not evidence that upsampling will add useful high-frequency content. Conversely, downsampling is a signal-processing choice that should happen before the AAC encode, with a proper filter, rather than being confused with a simple metadata edit.

Channel layout deserves the same attention. Opus mapping families can describe more than a simple mono/stereo stream, but many AAC delivery endpoints only accept mono or stereo, and they may have narrow rules for multichannel signalling. A stereo downmix is a new mix: centre dialogue, surrounds, and LFE contribution need deliberate treatment and listening checks. Do not duplicate mono speech into stereo merely to produce a larger file, and do not assume that two channels always mean the intended left/right programme survived.


Choose AAC Profile and Transport from the Receiver Contract Rather Than from the Extension

AAC-LC is the common general-purpose profile for many music and speech delivery uses. HE-AAC uses additional coding tools, including spectral band replication, for lower-rate applications and needs a decoder that supports that profile. Neither label is a universal quality ranking. A known compatible AAC-LC setting is normally the safer choice for broad device support; a constrained-bitrate service may explicitly request HE-AAC. Select the profile, target bitrate, sample rate, and channel count from the target documentation and test a representative excerpt.

A raw .aac file commonly carries ADTS. Each ADTS header precedes an AAC frame and signals such things as the stream profile, sampling-frequency index, channel configuration, and frame length. It is an elementary-stream transport, not a shortened M4A file. AAC can instead be stored in an ISO base media/MP4 family container, often called M4A, where sample tables and metadata atoms provide a different delivery model. A device that says “AAC” may accept one, both, or neither of those specific packages.

Make the transport choice before you judge metadata success. If the receiver needs a bare ADTS stream for an appliance or ingest pipeline, verify its permitted profile, sample rates, channels, and whether it can seek the resulting stream. If the result is intended for a music library with album art, sorting, and rich tags, ask whether the library requires AAC in M4A instead. A correct AAC bitstream inside the wrong wrapper remains an integration failure.


Treat AAC Priming and Whole Access Units as a New Boundary Condition After Opus Pre-Skip

Once source pre-skip and end trimming have been applied, the AAC encoder introduces its own state and framing. AAC-LC long access units commonly represent 1,024 PCM samples, while encoder delay and trailing padding depend on the encoder and the chosen packaging. A duration that does not divide neatly into those units needs a correctly handled final frame. That is separate from the Opus decoder’s pre-skip: one belongs to recovering the intended source PCM, the other belongs to presenting the new AAC result.

A container and player may have timing mechanisms to compensate for a coded-audio delay, but a raw ADTS workflow or a limited decoder may expose a different start or end. Do not solve that by automatically adding silence. First identify whether the audible difference comes from ignored Opus pre-skip, incorrect final-granule trimming, resampling, AAC encoder delay, or the destination player’s handling. Then test exactly where the audio will be consumed, particularly with gapless albums, loops, chapter joins, and files aligned to video.

For a large batch, make one short acceptance sample with a sharp opening, a quiet section, and a final fade. Inspect its reported codec, profile, rate, channels, and transport, then play it on the target. That small test is more revealing than selecting a bitrate from a generic chart, because it confirms the receiver’s actual parser and timing behaviour before every source is re-encoded.


Plan for OpusTags, Artwork, and Chapter Data to Need Format-Specific Migration

Ogg Opus commonly stores Vorbis-comment-style metadata in an OpusTags packet. A raw ADTS AAC stream is mainly an audio framing method and is not an equivalent portable library record. AAC in M4A can carry MP4-style metadata atoms, but their naming, artwork, sorting, multiple-value handling, and chapter conventions differ from OpusTags. Therefore a conversion can sound correct while title, artist, cover, author, or navigation data is absent or malformed in the destination.

Export or record important metadata before conversion. Check title, artist or author, album, date, track order, artwork, copyright data, custom fields, and chapter times after import into the real target library. For a lecture or audiobook, preserve a chapter list in a sidecar file when the delivery target cannot represent it reliably. Audio data, metadata data, and library interpretation are three separate checks.

Decision pointOpus source factAAC delivery consequence
Compressed audioLossy Opus packets in OggDecode to PCM, then make a new lossy AAC encode
Timeline48 kHz granules plus declared pre-skipApply source trimming before AAC starts
Frame structure2.5–60 ms Opus frames and packet groupingCreate independent AAC access units
Sample rate48 kHz clock does not prove source bandwidthKeep or resample once for a stated receiver need
PackagingOgg pages, OpusHead, and OpusTagsChoose ADTS AAC or AAC in M4A deliberately
TagsVorbis-comment-style fieldsVerify target-specific tags, artwork, and chapters

Approve the AAC File Only After Codec, Boundary, Metadata, and Device Checks Agree

Inspect the output rather than trusting its extension: it should identify as AAC with the intended profile, sample rate, channels, bitrate behaviour, and ADTS or M4A packaging. Compare intended playable duration, audition the start and end, seek through the middle, and play it on the receiver that motivated conversion. Keep the source until both technical inspection and practical playback pass.

Does converting Opus to AAC make the audio better?
No. It creates another lossy encode for compatibility. A higher AAC bitrate may reduce added damage, but it cannot restore information discarded by Opus.

Why does the converted file have a slightly different boundary?
Opus pre-skip and final granule trimming must be honoured before encoding; AAC then has its own framing and possible priming. Test audible boundaries in the target player.

Should I choose AAC-LC or HE-AAC?
Choose the profile the receiver documents. AAC-LC is commonly the interoperability choice, while HE-AAC is useful only where its low-rate profile is supported and requested.

Is a file named .aac the same thing as an M4A?
No. A .aac file commonly uses ADTS framing. M4A is an MP4-family container that may carry AAC plus a different metadata and timing model.

Will cover art and tags automatically transfer?
Do not assume so. OpusTags, raw ADTS, and M4A metadata use different structures; check the imported result in the destination library.