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.

Continue reading

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 reading

Secure Frames (SFrames): end-to-end media encryption with #webrtc now in chrome.

A Story of three years of work, by multiple partners.

  • 12-MAY-2020: The original (2017) draft for PERC-Lite has been uploaded as an informal IETF Draft here.
  • 19-MAY-2020: A more recent and more formal version of SFrame has been uploaded as a standard track IETF draft here.

For several Years now, CoSMo has been providing end-to-end encryption solutions, from clients to media servers and more, fully webrtc compliant, to many. The most famous customer is maybe Symphony Communications, using an early modified version of PERC called PERC-lite, but there are many more using the second generation version called SFrame co-developed originally by Google, including the real-time streaming platform MilliCast.com for the customers in need of something better than DRM.

There was a catch though, it would not work in Browsers, one would have to go native only. Not a problem for most mobile apps, and DUO has been leveraging it for more than a year now, but still, less than ideal. Since last week, it is now possible to support SFrame in the browser. So the cat is out of the bag.

In this post we will give you some technical details about SFrame, how it is better than PERC’s double in terms of overhead, and provide a free, open-source working example, with an E2EE ready SFU! Obviously, it is nowhere close to the quality you can get from the full CoSMo E2EME packages, and don’t get me started on the key exchange, but it will illustrate the concept.

Continue reading

AV1 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 reading

#WebRTC Jobs !

With all of CoSMo businesses growing, especially our Millicast real-time streaming platform doing 10x revenue YoY, and on track for +65% this Quarter (eq. to 7x annual), time has come again to hire.

We are duplicating our operation team, adding a Singapore Center in addition to the Existing US center based in California. As a result, we are opening a mid-level to senior Media DevOps position in Singapore, co-located with our global HQ, most of the C-Level, and the R&D team.

I took the opportunity to create a “Jobs” section in this blog. Do not hesitate to come back and visit, as we are likely to open more position as the year advance.

AV1 News – in preparation of NAB

Within AOMedia things are moving fast with the preparation for AV2 in full speed.
Outside of AOMedia, the adoption of AV1 is like a blazing fire. With the first AV1 adoption by Browser (decoder) two years ago, Netflix switching to AV1 for all content, recently on mobile as well, Hardware acceleration available for more than a year, and Real-Time codec implementations by google and Cisco, all is already on the table for success. Cisco demoed publicly real-time AV1 in webex, on a MacBook Pro in june 2019 !
With NAB around the corner, a lot of big player are positioning themselves, not only to differentiate their offer in production, but also internally to position themselves as the implementation reference for AV2. Netflix/INTEL SVT-AV1, google’s libaom, and xvc from Divideon (non-aom member)

Continue reading

Real-Time AV1 in (lib) #WebRTC m80 … ?

WebRTC M80 release notes announced for the first time some support for AV1 in #webrtc. This is the closest one gets from official announcement of support, but it is also difficult from the one-liner in the release note to understand what it is about and how to use it. This blog post will present some details on video codecs support in libwebrtc, position the m80 release in that scope and provide some visibility on the AV1 support in #webrtc timeline.

Continue reading