- Apr 25, 2015
- 1,845
- 2
- 2,199
- 327
According to TeamSpeak, they decided to remove legacy codecs CELT and Speex.
Want to know something funny? Check out those legacy codec websites (look up top on them).
What does this mean?
https://opus-codec.org/ has won position as the standard audio codec to use.
This would also mean you should use Opus (codec) if you are developing a VoIP application. Audiophiles enjoy using stereo audio, so the Opus music codec would be quite nice for these folks. While I believe this is an option within TeamSpeak, Discord is a free application serving far too many people without enough monetized revenue streams to support scaling the birtate up.
Ultimately, there is Opus voice and Opus music. You can have mono or stereo audio but your microphone should be a higher quality (somewhat expensive) when sending stereo audio to the server. This also impacts bitrate, refer to the chart. With this information, perhaps there could be some type of an audio quality test performed automatically your first 5 seconds of talking in a voice session. Because I am not an audio engineer, I am unaware of such a solution existing but if an audio engineer were to say "Hey, we know Person1 has a $100 stereo microphone so we can place them into the stereo microphone stream (Opus music) and Person2 has a $10 flimsy Walmart microphone so they get mono (Opus voice). The two streams can exchange information but now the individual sending stereo microphone quality can enjoy the benefit of his $200 headset friends hearing him clearly in a crisp audiophile pleasing way.
I am curious what anyone thinks about this! Share your feedback below
Surely it would not be overly challenging detecting mono/stereo audio coming in on the client or server. Then just have two separate streams coexisting to traverse the quality matching the input. This should already be a standard in my opinion, "Automatic Codec". It makes no damn sense to stream a static-filled 1kbps file at 300kbps but that is an example the type of bitrate waste being done to my understanding. The client and server need to work together to determine the best bitrate for each other, maybe that looks like starting everyone at music and if stereo or quality mismatches then automatically downgrade to mono stream to save bitrate. One of the largest complaints about Discord has been their "terrible quality". That is an intentional sacrifice I strongly believe, to keep all their servers scaling safely (without experiencing outages). They obviously have needed to adjust their thresholds in the past.
At the end of the day, both Discord and TeamSpeak are nothing without their audio codecs - aside from IM (instant messenger) or chatroom applications. I remember old chat room apps and honestly these newer ones look like a glorified resurrection.
If you look at the above images, all these apps achieve similar tasks. Communicating with others! Whether that is using voice, text, or whatever the concepts are all very similar. You have a list of servers, a list of contacts, and a method of communication (text/voice).
The only difference between them is primarily their underlying technologies including codecs, software, encryption, and such. The majority of them use(d) libraries for example Discord and TeamSpeak use Opus which is an open-source library for audio codec (encodes or decodes audio) for streaming of the voice data between client and server. Discord looks like IRC with added WebRTC functionality that got a bucket of purple paint spilled everywhere. Is making this type of stuff hard? No because most of the technologies used are open, free, and the developers primarily string together various libraries, reference development documentation (and tutorials), and then the company they work for throws their name on it and "sends it" to the world.
Honestly, I would rather just use IRC and Mumble right now because Mumble is the only website with 100% transparency on how your software is made and since their project is open, security audits can be performed on the code by anyone wishing to look without reverse engineering. For example, Mumble explains their codecs very well here. They also turn encryption on automatically - Mumble does.
Maybe you still do not believe me, just scroll through these and accept their similarities aside from aesthetic (design) differences:
Does Discord have the new CSS fancy design? Yeah, their CSS file is also 1,020,372 characters and they used various software to make that CSS via hiring a designer and more realistically you have a GFX designer, web designer, and development teams separate all of which Discord has done (employed, etc). Their desktop client is Electron-based and they have mentioned:
The point I am making is all of these technologies have predating open-source technologies. We have IRC/XMPP/Matrix/Mumble (thanks Opus codec).. this list could go on sourcing all the open-source that proprietary flavors provide. Why is this important at all? The majority of people blindly trust both Discord and TeamSpeak to keep their machines (and data) safe with proprietary client/server software and yet these people making "many" dollars have erected their businesses atop totally free technologies. What are they charging for? Their time, that is all this comes down to. It is tedious to wrap something in a pretty interface, there is a certain set of skills and knowledge to build the apps by tying the open-source libraries together, and most importantly the companies must stay in business to continue developing the software. Where is open-source different? People make the software out of the kindness in their heart.. and they are full of PASSION to build. Entering the corporate realm, concern is more about "How do we make money?" Imagine if Discord or TeamSpeak went bankrupt, what would happen? Your platform collapses out underneath you. Open-source is different because the community keeps the project(s) alive until they eventually become standardized and developers keep improving the software for the better of this world. Without Opus/Celt/Speex, these software solutions would all suck for voice communication (Discord, Mumble, and TeamSpeak).
I am pleading with you today. Consider what the world would look like if open-source projects paired together to make a seamless client to interface between IRC chat rooms (which there are public or self-hosted servers) and pairing Mumble (VoIP) into a possibly centralized (although nonprofit and privacy supportive) or even decentralized design. I know this post has a lot of "aloud thinking" so feel free to ignore me but I would love to hear replies.
Want to know something funny? Check out those legacy codec websites (look up top on them).
What does this mean?
https://opus-codec.org/ has won position as the standard audio codec to use.
Even though Opus is now standardized by the IETF, this Opus implementation will keep improving in the future. Of course, all future versions will still be fully compliant with the Opus IETF specification. See the development page for the latest development information.
This would also mean you should use Opus (codec) if you are developing a VoIP application. Audiophiles enjoy using stereo audio, so the Opus music codec would be quite nice for these folks. While I believe this is an option within TeamSpeak, Discord is a free application serving far too many people without enough monetized revenue streams to support scaling the birtate up.
Ultimately, there is Opus voice and Opus music. You can have mono or stereo audio but your microphone should be a higher quality (somewhat expensive) when sending stereo audio to the server. This also impacts bitrate, refer to the chart. With this information, perhaps there could be some type of an audio quality test performed automatically your first 5 seconds of talking in a voice session. Because I am not an audio engineer, I am unaware of such a solution existing but if an audio engineer were to say "Hey, we know Person1 has a $100 stereo microphone so we can place them into the stereo microphone stream (Opus music) and Person2 has a $10 flimsy Walmart microphone so they get mono (Opus voice). The two streams can exchange information but now the individual sending stereo microphone quality can enjoy the benefit of his $200 headset friends hearing him clearly in a crisp audiophile pleasing way.
I am curious what anyone thinks about this! Share your feedback below
Surely it would not be overly challenging detecting mono/stereo audio coming in on the client or server. Then just have two separate streams coexisting to traverse the quality matching the input. This should already be a standard in my opinion, "Automatic Codec". It makes no damn sense to stream a static-filled 1kbps file at 300kbps but that is an example the type of bitrate waste being done to my understanding. The client and server need to work together to determine the best bitrate for each other, maybe that looks like starting everyone at music and if stereo or quality mismatches then automatically downgrade to mono stream to save bitrate. One of the largest complaints about Discord has been their "terrible quality". That is an intentional sacrifice I strongly believe, to keep all their servers scaling safely (without experiencing outages). They obviously have needed to adjust their thresholds in the past.
At the end of the day, both Discord and TeamSpeak are nothing without their audio codecs - aside from IM (instant messenger) or chatroom applications. I remember old chat room apps and honestly these newer ones look like a glorified resurrection.
If you look at the above images, all these apps achieve similar tasks. Communicating with others! Whether that is using voice, text, or whatever the concepts are all very similar. You have a list of servers, a list of contacts, and a method of communication (text/voice).
The only difference between them is primarily their underlying technologies including codecs, software, encryption, and such. The majority of them use(d) libraries for example Discord and TeamSpeak use Opus which is an open-source library for audio codec (encodes or decodes audio) for streaming of the voice data between client and server. Discord looks like IRC with added WebRTC functionality that got a bucket of purple paint spilled everywhere. Is making this type of stuff hard? No because most of the technologies used are open, free, and the developers primarily string together various libraries, reference development documentation (and tutorials), and then the company they work for throws their name on it and "sends it" to the world.
Honestly, I would rather just use IRC and Mumble right now because Mumble is the only website with 100% transparency on how your software is made and since their project is open, security audits can be performed on the code by anyone wishing to look without reverse engineering. For example, Mumble explains their codecs very well here. They also turn encryption on automatically - Mumble does.
Mumble uses encryption for both control messages as well as voice data. Mumble's control channel is encrypted using TLS-negotiable cipher suites and Mumble's voice channel is encrypted using OCB-AES128. OCB is used to provide both secrecy and authentication while maintaining low latency. This encryption is mandatory and cannot be disabled.
Mumble primarily uses the Opus codec. Opus is a free codec that provides low-latency high-quality audio. Opus integrates the best of Speex, CELT, and Skype's SILK codecs. For backwards-compatibility, the previous default of CELT is also supported.
Maybe you still do not believe me, just scroll through these and accept their similarities aside from aesthetic (design) differences:
Does Discord have the new CSS fancy design? Yeah, their CSS file is also 1,020,372 characters and they used various software to make that CSS via hiring a designer and more realistically you have a GFX designer, web designer, and development teams separate all of which Discord has done (employed, etc). Their desktop client is Electron-based and they have mentioned:
We use electron for the desktop app, so it’s all javascript and react!
The point I am making is all of these technologies have predating open-source technologies. We have IRC/XMPP/Matrix/Mumble (thanks Opus codec).. this list could go on sourcing all the open-source that proprietary flavors provide. Why is this important at all? The majority of people blindly trust both Discord and TeamSpeak to keep their machines (and data) safe with proprietary client/server software and yet these people making "many" dollars have erected their businesses atop totally free technologies. What are they charging for? Their time, that is all this comes down to. It is tedious to wrap something in a pretty interface, there is a certain set of skills and knowledge to build the apps by tying the open-source libraries together, and most importantly the companies must stay in business to continue developing the software. Where is open-source different? People make the software out of the kindness in their heart.. and they are full of PASSION to build. Entering the corporate realm, concern is more about "How do we make money?" Imagine if Discord or TeamSpeak went bankrupt, what would happen? Your platform collapses out underneath you. Open-source is different because the community keeps the project(s) alive until they eventually become standardized and developers keep improving the software for the better of this world. Without Opus/Celt/Speex, these software solutions would all suck for voice communication (Discord, Mumble, and TeamSpeak).
I am pleading with you today. Consider what the world would look like if open-source projects paired together to make a seamless client to interface between IRC chat rooms (which there are public or self-hosted servers) and pairing Mumble (VoIP) into a possibly centralized (although nonprofit and privacy supportive) or even decentralized design. I know this post has a lot of "aloud thinking" so feel free to ignore me but I would love to hear replies.
Last edited: