While scalability is often the first excuse some use not to use WebRTC, a persistent claim even though that myth has been debunked long ago and many time over since, “quality” is certainly the second one. Webrtc cannot do <put a resolution here>, it’s just good enough for webcams, it cannot use more than 2.5 Mbps, ….. . While all of those previous claims are false, there is one that was correct: the default audio codecs in webrtc implementations, and especially in browsers, are not as good when it comes to spatial info than their streaming or gaming counterparts… untill recently!
(@voluntasに大変ご失礼します^o^)
Technical
H265 / HEVC, hardware accelerated, in #Webrtc – DONE … well, almost.
This is really a great week with so many of the projects cosmo has been working on or helping for the past years coming out almost at the same time. During last IETF Hackathon, at the webrtc table, and then at cosmo offices in Singapore, INTEL and Apple came together to add HEVC support in webrtc.
INTEL chips have been supporting Encoding and Decoding for some time now. They support it in non-GPU hardware, making it a big deal for devices that can’t afford full discrete GPU. Most Apple devices integrate those INTEL chip, so having support in WebRTC for H265 HW acceleration was de facto enabling H265 in all of Apple devices in one shot (without legal issues). Of course, the more support there is for INTEL features in media stacks above, the more hardware they sell. Win-Win
INTEL (webrtc group in Shanghai) had an implementation for Desktop, android and iOS. CoSMo acted as a catalyst between the two teams, and the two language/culture (chinese and french :-)).
This blog is about the tech details of H265 in particular, and Hardware Accelerated Codecs implementation in libwebrtc in particular.
Updated on april, 7th, to add info about GPU acceleration support, in addition to INTEL CPU HA acceleration support.
(*) CPU Hardware acceleration means the CPU has dedicated silicon circuit to implement the function, as opposed to running a software implementation in the generic x86 CPU. Even though both use the CPU, the former is much faster.
AV1 in lib #webrtc – DONE
For the past weeks, lots of work was done to make Av1 available in libwebrtc in an easy way. It is very clear from the messages on discuss-webrtc that the compilation process behind chrome, electron and libwebrtc is more often than not too hard to understand, some extra time was spent to make it easier for people to enable it and use it. CoSMo has also prepared a separate GitHub repository with, wait for it, documentation ! Pre-compiled examples, an AV1-ready webrtc SFU, and KITE tests are also provided for people to adopt AV1 faster.
Continue readinglibwebrtc Compilation flags
Many questions on the discuss-webrtc mailing list nowadays are about specific configuration flags. It’s frequent enough to deserve a blog post to provide the basic and try to reduce the number of stuck people.
Continue readingAV1 Availability in Chrome: The tentative Roadmap
The work to add RTC AV1 in Chrome, which started in November last year is now well underway. Many people still ask the legitimate question: when will it be available and how good will it be. We had planned to deliver the implementation at IETF in Vancouver at the end of the month and make demos, but the IETF like many other events has been cancelled, so we are switching to weekly updates until the release, still planned for April. This post provides some information about both timing and quality questions.
Continue readingI want to support #WebRTC, do I really need to use google library?
WebRTC has been a magical word for the best part of the 2010 decade, starting, if we had to put a date on it, with 2011 Google IO presentation. From conversations as early as 2018, and many small signs (dropping support for official mobile release in m80 release notes), it was clear that, for Google at least, the WebRTC star itself was already the past. Still, more people depend on webRTC, or want to adopt it, today than ever. What are the options out there? How should one prepare for WebRTC in 2020?
Continue readingFree H264 in lib #webrtc for free
Libwebrtc does not include support for H264 by default. While the code could support it, there are legal obligation when it comes to compile and distribute H.264 in your product: License and royalties! CoSMo just contributed a patch to make libwebrtc use OpenH264 (free as freedom) for encoding, and to dynamically load the Cisco provided library to make it free (free like beer).
Continue reading#WebRTC 101: 1st assignment
Now that we understand the basis of libwebrtc code management, we can start answering otherwise problematic questions. This week I was at CommConUK, and was discussing the number of contributors to libwebrtc, pointing my interlocutor to the AUTHORS file to start with. “Less than 100” was the other party position, and to be honest, I had never checked. So, who would risk a guess as to how many contributors to the webrtc stack there were in the past three years, and more importantly, how to check?
Continue reading#WebRTC 101: Fetch the source
I first started writing about libwebrtc source management, build and test systems almost 5 years ago. While the posts are still here, and mostly accurate, people forget, and/or the system as changed just enough that we need to update what is the de-facto reference for libwebrtc. As we are writing a book, with examples and illustration to be used in classrooms to teach the underlying principles, and in companies for e.g. on boarding Engineers, we though we should put some extract here.
Continue readingLibwebrtc is open source, how hard can it be.
Recent discussions with several parties, make me realise that the first steps to master webrtc are not yet documented enough. Once, as a challenge, I asked a master student doing his graduation project with us to try to recompile and example provided with libwebrtc separately from the compilation of libwebrtc itself. Basically to make a project with the same example source code but that would link against the pre-compiled library. 5 months later, it was still not successful. Thanks to our internal tool that I shared then, we eventually did it in two weeks. This post is about the usual ordeal people have to go through to understand the state of affair, and of course how CoSMo can shield you from that.