With or without WebRTC, Opus seems like a winner.
Opus is a relatively new codec. Less than 2 years in existence. If you want to compare it to any other codec, then Speex is probably the best one:
- Both are considered open source codecs, distributed under the BSD license
- Both support narrow and wideband
The difference? Speex raised a white flag, as stated on its official website:
The Speex codec has been obsoleted by Opus. It will continue to be available, but since Opus is better than Speex in all aspects, users are encouraged to switch
Opus had a great potential when it started. It shows merit and superior technical capabilities compared to commercial, royalty based codecs as well:
But it was still debatable if this will be enough for it.
That said, recent events indicate that Opus is being adopted widely and not only within the open source community. Here are two such instances.
UberConference adopted Opus as part of their voice conferencing service just last week. While it may seem like an easy feat, you should remember that most media servers today still can’t deal with Opus, so having an audio mixer capable of dealing with this codec required an extra effort on top of the vinyl distribution coming from the web browsers.
The other story is far more interesting. It is the one about Audio Codes and their recent developments around IP phones. In order to support WebRTC, they added… Opus to IP phones. Not WebRTC, mind you, just the voice codec. The idea behind it is to make it easier to integrate WebRTC with existing VoIP deployments while maintaining HD voice capabilities – and doing that without the need to transcode between codec versions. I believe this is a very smart move on their part and not an obvious one.
–
A more recent update pitches Microsoft Satin against Opus, and places Google Lyra as a better alternative for low bitrates. In both cases, AI is used.
When I first saw what Opus is and how well it works I was Gobsmacked. It seems to be better than anything else out there in quality, widely applicable and is completely free.
For more technical information and the history of Opus you should look at this presentation:
http://www.youtube.com/watch?v=iaAD71h9gDU
As always, Leenie – thanks for the additional resource 🙂
Yes, the Opus codec is outstanding, providing excellent audio quality at lower bitrates than its competitors, even with music. It also won two blind listening tests, one at 96Kb/s, and another at 64Kb/s, beating AAC, Ogg Vorbis, and of course, MP3.
64Kb/s: http://listening-tests.hydrogenaud.io/igorc/results.html
96Kb/s: http://listening-test.coresv.net/results.htm
Unfortunately, Opus is STILL not supported in Internet Explorer. Firefox, Chrome, and Opera all support Opus (and Ogg Vorbis) HTML5 audio playback. As I write this, Microsoft has a suggestions portal where you can vote for features you would like to see in their productions.
The technical plenary from the IETF in Berlin had a nice discussion on opus and it’s history at the IETF: http://recordings.conf.meetecho.com/Recordings/watch.jsp?recording=IETF87_TECH_PLENARY&chapter=part_4
Philipp – thanks!
The video taught me that after the success of the Opus codec and the codec working group at the IETF. Mozilla and Xiph (and others ?) are working on Daala as the basis for a video codec working group in the IETF. That is something to keep a eye on.
why not just use MP3?
MP3 has a very high delay that is not suitable for real-time communication. Also it has inferior quality compared to Opus 🙂
The process of creating Opus was very different from the process that brought about Speex. Opus started as an open call for designs from a variety of parties. It was a gathering of experts and design principles. It assembled the best in class ideas from everyone who cared to participate given the stated principles of the project.
The nature of the development process delivered a result that is much more approachable from an IP perspective. There are fewer unknowns and potentially less legal risk.
“…most media servers today still can’t deal with Opus.” – This is increasingly untrue. Media servers that are software-based are easily updated. Media servers that were already handling wideband voice (G.722 or better) were likely well-positioned to implement Opus. For example, the Freeswitch conferencing engine was already performing all mixing at 48 KHz sample rate, making Opus a relatively easy extension to the application.
Opus has as much potential to impact this outside of the real of WebRTC as within that space. Opus in SIP clients will be very useful. I’ve already experimented with several soft phones that feature Opus.
In the end, Opus-everywhere has the potential to allow interoperability that has to date only been possible using G.711.
All true of course.
2 years ago, when we looked for which voice codecs to support, the list had to usually include G.711, G.729, G.722 and potentially G.719. From there it degraded to iLBC, iSAC and SILK – the idea was to cover all basis.
Today? For something brand new, I’d go for G.711 and Opus and be done with it. I know this limits a lot in the area of interoperability, but it simplifies so much that for most uses it is the best approach.
I find it very encouraging that Opus is gaining so much traction and adoption already.
Good to see the comparison though I would really like to know how Opus compares to g.729
Apples and Oranges.
Opus is ahead of the curve of most codecs, especially an old one like G.729. Check this link: http://www.opus-codec.org/comparison/
Is opus is the latest and finest HD conferencing medium available comparing to the other medium ?
I believe it is for voice.
How about the performance of packet lost conceal?
I am not sure what the answer to this question is, especially when concealment is done across the stack – from the network later, through the audio algorithms to the voice codec itself.