VP8: The WebRTC Video Codec
WebRTC-enabled browsers can stream real-time video without requiring users to download extraneous plugins. This sounds quite remarkable, but the astute developer will no doubt have some questions about the nuts and bolts of this capability. For instance, what standard is used by the WebRTC video codec? What sort of quality can WebRTC video codec offer? And are there any licensing fees or paid requirements to use the WebRTC video codec?
WebRTC is completely free and open source, including all of its codecs. Although the project is maintained by Google, there are no licensing fees, maintenance charges, or even nominal costs to help foster the technology. The WebRTC APIs are built into Chrome and Firefox right out of the box. VP8 is the required WebRTC video codec, and its source code has been made freely available to the public through Google’s ownership.
A Brief History of VP8
In 2010, Google acquired On2, a firm that developed video codec technologies. Shortly thereafter, the Free Software Foundation issued a letter requesting that VP8 be made open source. WebM was the first audio-video container for VP8. The codec was chosen as the WebRTC video codec in 2011. After a protracted licensing dispute with MPEG LA in 2013, Google was allowed to sub-license all questionable patents, thus clearing the way for uninhibited usage by developers.
VP8 Video Quality
One of the first questions developers have about the WebRTC video codec is how the video quality fairs. VP8 has no limit on frame rate or data rate. It utilizes 14 bits for both width and height, which makes the maximum resolution 16384x16384 pixels. But showing is perhaps better than telling, so why not give some WebRTC video applications a try? GetOnSIP is a WebRTC video chat client that we built with our own SIP stack, SIP.js. VP8 is often compared with H.246, a popular video codec that requires licensing royalties. Some commenters have noted the two codecs are highly similar in quality.
The WebRTC video codec is powered by libvpx, which is the only software library that can encode VP8 video streams. WebM is currently working with chip vendors to incorporate VP8 acceleration into current hardware. A free RTL hardware encoder for VP8 was released by the WebM project for interested semiconductor manufacturers. The Nvidia Tegra 4 mobile chipset offers complete VP8 hardware encoding and decoding.