Cisco are paying the $6,500,000 annual licensing fee to the MPEG LA, so you don't have to.

Download (BSD-licensed Source Code)

OpenH264 is a codec library which supports H.264 encoding and decoding. It is suitable for use in real time applications such as WebRTC. See openh264.org for more details.

Encoder Features
  • Constrained Baseline Profile up to Level 5.2 (4096x2304)
  • Arbitrary resolution, not constrained to multiples of 16x16
  • Rate control with adaptive quantization, or constant quantization
  • Slice options: 1 slice per frame, N slices per frame, N macroblocks per slice, or N bytes per slice
  • Multiple threads automatically used for multiple slices
  • Temporal scalability up to 4 layers in a dyadic hierarchy
  • Spatial simulcast up to 4 resolutions from a single input
  • Long Term Reference (LTR) frames
  • Memory Management Control Operation (MMCO)
  • Reference picture list modification
  • Single reference frame for inter prediction
  • Multiple reference frames when using LTR and/or 3-4 temporal layers
  • Periodic and on-demand Instantaneous Decoder Refresh (IDR) frame insertion
  • Dynamic changes to bit rate, frame rate, and resolution
  • Annex B byte stream output
  • YUV 4:2:0 planar input

Decoder Features
  • Constrained Baseline Profile up to Level 5.2 (4096x2304)
  • Arbitrary resolution, not constrained to multiples of 16x16
  • Single thread for all slices
  • Long Term Reference (LTR) frames
  • Memory Management Control Operation (MMCO)
  • Reference picture list modification
  • Multiple reference frames when specified in Sequence Parameter Set (SPS)
  • Annex B byte stream input
  • YUV 4:2:0 planar output

OS Support
  • Windows 64-bit and 32-bit (initial release is only 32-bit, 64-bit will follow soon)
  • Mac OS X 64-bit (initial release does not include this target, will follow soon)
  • Linux 64-bit and 32-bit (initial release is only 32-bit, 64-bit will follow soon)
  • Android 32-bit (initial release does not include this target, will follow soon)
  • iOS 64-bit and 32-bit (not supported yet, may be added in the future)
Cisco releases free and libre H.264 code for browsers « Ars Technica

Cisco, actively involved in the development of WebRTC, has stepped forward with a possible solution. The company is releasing an open source, BSD-licensed implementation of the H.264 specification. It's also releasing a compiled, freely downloadable binary version of that same source code. Cisco will pay the license fees for that binary module, and won't pass that fee on to end users.

Mozilla has already announced that it will modify Firefox to enable it to use this binary module. In turn, this will mean that Firefox can offer H.264 support even on platforms such as Windows XP, which lack any built-in operating system-supplied method to display such video. This still leaves gaps, as AAC audio has similar issues to H.264, but it is nonetheless progress.

While this is plainly an imperfect solution—any third-party modifications to the source code won't be licensed, so anyone concerned about licensing will have to use Cisco's implementation without any changes—it nonetheless provides a way for zero-cost projects to support H.264 without incurring any royalties.