Hacker News

Favorites Setup
Comment by cogman10 | original | FFmpeg 9.1's new AAC encoder
[−]cogman10 · 2026-07-01 Wed 17:27 UTC · link
Man what a showcase for Opus this is.

Don't get me wrong, this sort of thing is a valuable exercise and we are better off with better encoders for these older codecs. But look at the numbers for Opus on this benchmark. It simply blows all the AAC encoders out of the water even at 64 kbps.

[−]ndiddy · 2026-07-01 Wed 17:46 UTC · link
The biggest advantage for having a good AAC encoder isn't efficiency, it's that for nearly the past 2 decades the de facto standard for live streamed video has been RTMP with H.264 video and AAC audio. There is basically no support for any other codecs. If you want to send a video stream to Youtube or Twitch, you will be sending H.264 and AAC. If you want an idea of how ubiquitous this is, I just checked in OBS and it will not even let you select different video and audio codecs in streaming mode, it just (correctly) assumes that anybody who's streaming will be streaming H.264 and AAC.
[−]repelsteeltje · 2026-07-01 Wed 17:55 UTC · link
Sample accurate editing is with AAC is a pain though. Especially if you also have video, because frame rates are usually incompatible.

If you want flexibility without fully transcoding both audio and video, Opus is your friend

[−]ksncksmckwkf · 2026-07-01 Wed 18:15 UTC · link
Opus is your friend as long as the software you’re using supports it—besides, Apple’s AAC-LC can beat out Opus in low bitrates scenarios.

Whether you like it or not, AAC is still the standard.

[−]ErroneousBosh · 2026-07-02 Thu 07:55 UTC · link
Editing with any playback-only format like AAC or H.264/5 is a pain.

Everyone I've seen complaining about slow choppy playback in DaVinci Resolve appears to be using long-GOP codecs which require a massive amount of processing to decode. It's something like playing out two seconds of video to access every single frame.

[−]CharlesW · 2026-07-01 Wed 17:56 UTC · link
Plus, at 96+ kbps (assuming an Apple-quality AAC-LC encoder) Opus loses its quality advantage. So at higher bitrates, the benefit of choosing Opus is that encoders/decoders are royalty-free.
[−]pkulak · 2026-07-01 Wed 21:16 UTC · link
Am I reading that chart wrong? I see Opus ahead across every bitrate.
[−]CharlesW · 2026-07-01 Wed 23:35 UTC · link
The evaluation tools used are helpful for encoder development, but at best they're imperfect proxies for human perception, and their predictions are often inconsistent with the human experience. I assume that statements like "apparently the best AAC encoder" aren't meant to be taken too seriously, since everybody who does this stuff knows that ABX/MUSHRA tests with real humans is what tells the tale.

On Opus vs. AAC specifically, there's a long history of studies like https://www.researchgate.net/publication/301428302_Perceived... to help answer that question. (There are interesting charts at the top of page 1175.)

[−]booi · 2026-07-01 Wed 18:35 UTC · link
Also the fact that hardware-accelerated AAC and even full AAC offload is ubiquitous in modern-ish hardware. I think my rice cooker can play AAC audio
[−]lesscraft · 2026-07-01 Wed 18:41 UTC · link
No one really offloads AAC, apart from Apple. Opus can be decoded on very cheap microcontrollers entirely in software using the reference library.
[−]philistine · 2026-07-01 Wed 22:47 UTC · link
On a microcontroller doing nothing else sure. But on a phone, a tablet, a laptop, you absolutely want hardware decode to preserve your battery life.
[−]nulld3v · 2026-07-02 Thu 01:45 UTC · link
That's their point though. Basically no modern phone/laptop/tablet other than Apple offloads audio decoding (of any codec) to hardware. You can check this on Android phones by installing the Codec Info app.
[−]cogman10 · 2026-07-02 Thu 03:01 UTC · link
Audio decode is extremely cheap. It's true that a hardware implementation will be more efficient, but really not a whole lot more.
[−]AnggaSP · 2026-07-02 Thu 05:29 UTC · link
There absolutely does, Android did with low power audio. They even goes a step further by offloading bluetooth processing into DSP.

I’m not in this space anymore but as of Android 5-6 era aac and bt is offloaded to hexagon dsp on qualcomm device.

[−]stefan_ · 2026-07-01 Wed 21:16 UTC · link
I think often of how all it would have taken was a bomb for the 10 or so people that years ago at some browser vendor consortium out of pure self centeredness went „nah lets fragment“. We could have saved many many collective years, electricity and eyeballs simply watching the most basic content.
[−]derf_ · 2026-07-01 Wed 22:21 UTC · link
At one point in I think 2012 three of us who normally all live in different countries were riding in the same car in Australia. We advised the driver to be extra careful (she was dating one of us, so incentives were aligned).

But it is nice to hear that you have been thinking of us, too.

[−]jshier · 2026-07-01 Wed 21:39 UTC · link
YouTube actually supports H.265 and VP9 ingest, depending on the streaming protocol. I can actually stream 4K@60 H.265 from my Mac Studio with < 5% CPU usage due to the hardware encoder support in OBS.

https://developers.google.com/youtube/v3/live/guides/ingesti...

[−]ndiddy · 2026-07-02 Thu 01:48 UTC · link
Nice, glad some sites are finally trying to move forward. It looks like they only support H.265 video with AAC audio, so this should still be helpful for people who are streaming H.265. https://developers.google.com/youtube/v3/live/guides/hls-ing...
[−]someonebaggy · 2026-07-01 Wed 23:41 UTC · link
The RTMP protocol comes from Adobe Flash which only supported a limited set of codecs, the only still useful ones being H264 and AAC. Nobody published the needed protocol extension "enhanced RTMP" until 2022 and it still isn't supported widely. RTMP is not a generic container for any codec, like Mastroska - RTMP is tightly coupled to the codec.
[−]palmotea · 2026-07-01 Wed 17:49 UTC · link
> Man what a showcase for Opus this is.

I take it you mean this Opus (https://en.wikipedia.org/wiki/Opus_(audio_format)) not that Opus (https://en.wikipedia.org/wiki/Claude_(AI)).

I read almost all the way through your comment thinking there was a decent probability you were saying this new AAC encoder was written with Claude Opus.

[−]theandrewbailey · 2026-07-01 Wed 18:31 UTC · link
I've never been AI guy, and have more fascination with audio. I've long stopped being excited when I read "Opus" on HN. It's refreshing when it turns out to be the audio codec.
[−]Aachen · 2026-07-01 Wed 23:30 UTC · link
To be fair, Opus was never a great name. I always feel the need to specify further when using it outside of a clear context of music codecs (also way before Claude was announced). Love it in every other way though
[−]pezezin · 2026-07-02 Thu 01:21 UTC · link
No, he was talking about the Opus Dei because this code quality can only be reached by God himself /jk
[−]skydhash · 2026-07-01 Wed 17:55 UTC · link
I would like Opus, but I’m using a subsonic client on iOS and my choice has been Flac (Alac?), MP3, or AAC. Opus wouldn’t play (There are some that supported it, but I didn’t like their UX).
[−]CharlesW · 2026-07-01 Wed 17:59 UTC · link
You might like Poppy (in beta), which supports all media servers (including OpenSubsonic/Navidrome) and Opus as a first-class music format. https://www.reddit.com/r/PoppyApp/comments/1tiyki0/about_pop...
[−]jck86 · 2026-07-01 Wed 17:56 UTC · link
Choosing a lossy audio codec has become such a no brainer. Either use opus and be done with it or if for some reason opus cannot be used then use aac for compatibility with insane high bitrate for good quality without having to do research on what encoder and mode to pick.

Still having a good quality and default aac encoder is great. Though I don't get why it is mainly CBR.

[−]BoingBoomTschak · 2026-07-01 Wed 19:15 UTC · link
Eh, I prefer Vorbis mostly because it's still competitive at transparent bitrates (esp. with Aotuv patches) and benefits from a much saner volume normalization spec (simply transfer RG 2.0 tags from the FLAC source): Xiph decided to exclude peak information from Opus' spec while adding that weird thing where album gain is stored in the format header and additional track gain in the metadata.

It also uses less battery on my Rockbox'd Clip+.

[−]jck86 · 2026-07-01 Wed 19:32 UTC · link
For replaygain purposes simply ignore the spec and use RG 2.0 tags? That works with Opus too and hardly any players support Opus R128 gain anyway. For very low spec devices Vorbis would do a bit better though. For legacy devices legacy codecs can be a better fit indeed.

But would you really store new material encoded in Vorbis just to be able to play it on an old device? Vorbis can sound fine, even at lower bitrates like 128k or 96k, but Opus would sound much better. So perhaps then use Vorbis at higher bitrates like +192k? I prefer Vorbis to Aac but at that bitrate minor intricacies of the container format become more important than the codec because audio quality wise they are near indistinguishable.

[−]a1o · 2026-07-01 Wed 18:14 UTC · link
I think the biggest issue with Opus is the problem with its specification being lacking, see:

https://nothings.org/stb/stb_opus.html

This essentially causes opus to never be used in games or in things in stores that may have issues with specific licenses.

[−]kderbe · 2026-07-01 Wed 18:33 UTC · link
This essay says it's not possible to make a public-domain implementation of Opus. But it could be released under BSD (as libopus is), which is fine for games, as evidenced by the Licenses section of the credits in many games.
[−]scratcheee · 2026-07-01 Wed 18:52 UTC · link
That’s going a bit far. I’m in the games industry and have used opus regularly, it’s a great codec for games, often the hardware decoding is so restricted that we’re using software regardless so we might as well use something like opus.

The licensing restriction is unfortunate, but only restrictive for those with very specific goals, under normal conditions BSD is a wonderful license for game devs since you’re free to use the code and only have to add an acknowledgement somewhere.

I suppose a public domain game might hit the same limitation, though as a non-lawyer I would guess the chance of anyone with standing trying to sue anyone implementing from this spec is realistically zero (though I don’t fault stb for being unwilling to roll those dice!)

[−]duskwuff · 2026-07-01 Wed 21:19 UTC · link
> under normal conditions BSD is a wonderful license for game devs since you’re free to use the code and only have to add an acknowledgement somewhere.

And it's not as though libopus is an outlier in using a BSD license. A lot of other commonly used libraries have similar licenses; a few examples that come to mind which are likely to show up in games are zlib, curl, Lua, and SDL.

[−]chaosharmonic · 2026-07-01 Wed 21:38 UTC · link
libopus isn't even an outlier in using it for a media format specifically. See: everything coming out of the Alliance for Open Media
[−]ack_complete · 2026-07-01 Wed 19:11 UTC · link
Most games use the sound support that comes with their game engine or choice of sound system, so I don't think the lack of an STB version is an issue. Performance is more of a problem. Audiokinetic, the makers of the popular Wwise audio system, estimate that Opus takes ~3-5x the CPU of Vorbis:

https://www.audiokinetic.com/en/community/blog/a-guide-for-c...

[−]sbseitz · 2026-07-01 Wed 23:12 UTC · link
Most of my collection is Opus 256K, the only downside is support. A lot of tools like Bliss/Roon don't support it :(
[−]arikrahman · 2026-07-02 Thu 03:54 UTC · link
Took me a second to realize you were talking about the encoder not the model before going into this article