OpenH264 | |
Developer: | Ethan Hugg |
Status: | --> |
Programming Language: | C++, Assembly |
Genre: | Video codec |
License: | Simplified BSD license[1] |
OpenH264 is a free software library for real-time encoding and decoding video streams in the H.264/MPEG-4 AVC format.[1] It is released under the terms of the Simplified BSD License.[2]
On October 30, 2013, Rowan Trollope from Cisco Systems announced that Cisco would release both binaries and source code of an H.264 video codec called OpenH264 under the Simplified BSD license, and pay all royalties for its use to MPEG LA themselves for any software projects that use Cisco's precompiled binaries (thus making Cisco's OpenH264 binaries free to use); any software projects that use Cisco's source code instead of its binaries would be legally responsible for paying all royalties to MPEG LA themselves, however.
Current target CPU architectures are x86 and ARM, and current target operating systems are Linux, Windows XP and later, Mac OS X, Android and iOS.[3] [4] [5]
Although the source code for OpenH264 already existed in October 2013 and was used internally by Cisco products, Cisco did not publish its OpenH264 codec immediately. The announced reason was that they needed to separate it from dependencies on other Cisco code that is not intended to be open-sourced, confirm that it does not have any 0-day security vulnerabilities that could jeopardize other Cisco products using the same code, and make sure all necessary legal processes are completed.[6]
Cisco published the source code of OpenH264 on December 9, 2013.[7]
Also on the day of Cisco's free-use announcement, October 30, 2013, Brendan Eich from Mozilla wrote that it would use Cisco's binaries in future versions of Firefox to add support for H.264 to Firefox where platform codecs are not available.[8] In October 2014, Mozilla launched Firefox 33, the first major release to support OpenH264.[9]
OpenH264 is designed to be used in applications that require encoding and decoding video in real time, such as WebRTC.
In addition to its own decoder and the x264 encoder, FFmpeg supports OpenH264 as both an encoder and decoder.