H.264 in WebRTC

Cisco just did a solid and released H.264 into open source for use in WebRTC. Cisco is absorbing the estimated $13 million in licensing fees from MPEG-LA. The reason Cisco did this was to avoid transcoding of H.264 streams from other video clients, a wise choice. The IETF is determining which video compression algorithm will be the baseline for webRTC this week.

Mozilla will incorporate webRTC, including H.264, into the Firefox browser and Chrome already has it. Google is sticking with VP8 and is a major developer and contributor to webRTC. The IETF vote is in Atlanta this week and we’ll update this post with who won out in the video codec selection. We hope both are supported, yet Cisco is right, the last thing one wants to be doing in a real time stream is transcoding H.264 to VP8. It does seem that stand alone proprietary video conferencing and streaming solutions are going the way of the dinosaur, although webRTC as the meteor which killed the beast is yet to be determined.

Real-time communications in the browser utilizing native codecs and javascript sounds too good to be true and that is becuase it is. Underneath the hood are the typical real time streaming issues such as NAT transversal, firewalls, latency, QoS and synchronization, to name just a few. WebRTC latency was reported to be 150ms with a mininimum of 100ms. While that mets ITU QoS, it is pretty much the crappy out of sync video conferencing most of us experience daily.

It appears at the IETF meeting there was no consensus on which video compression algorithm to make mandatory for webRTC.   It also appears both is not an option, so far and Nexus has hardware implementations of VP8 while hardware acceleration for H.264 is available in many chipsets.

On a technical note, I am downloading the source for webRTC, focus on Opus, (Xiph), since supposedly it is not ported, never mind optimized, on many embedded platforms.    I’ll write up what I find in another post.