Theora is a free
lossy In information technology, lossy compression or irreversible compression is the class of data compression, data encoding methods that uses inexact approximations and partial data discarding to represent the content. These techniques are used to red ...
video compression format. It is developed by the Xiph.Org Foundation and distributed without licensing fees alongside their other free and open media projects, including the
Vorbis Vorbis is a free and open-source software project headed by the Xiph.Org Foundation. The project produces an audio coding format and software reference encoder/decoder (codec) for lossy compression, lossy audio compression (data), audio compressi ...
audio format and the
container. The libtheora
video codecA video codec is software or Computer hardware, hardware that data compression, compresses and Uncompressed video, decompresses digital video. In the context of video compression, ''codec'' is a portmanteau of ''encoder'' and ''decoder'', while a dev ...
is the
reference implementation In the software development process, a reference implementation (or, less frequently, sample implementation or model implementation) is a program that implements all requirements from a corresponding specification. The reference implementation of ...
of the Theora video compression format being developed by the Xiph.Org Foundation. Theora is derived from the formerly Proprietary software, proprietary VP3 codec, released into the public domain by On2 Technologies. It is broadly comparable in design and bitrate efficiency to MPEG-4 Part 2, early versions of Windows Media Video, and RealVideo while lacking some of the features present in some of these other codecs. It is comparable in open standards philosophy to the BBC's Dirac (video compression format), Dirac codec. Theora is named after Theora Jones, Edison Carter's Controller on the ''Max Headroom (TV series), Max Headroom'' television program.

Technical details

Theora is a variable bitrate, variable-bitrate, discrete cosine transform, DCT-based video compression scheme. Like most common video codecs, Theora also uses chroma subsampling, block (data storage), block-based motion compensation and an 8-by-8 DCT block. Pixels are grouped into various structures, namely blocks, super blocks, and macroblocks. Theora supports intra-coded frames and forward-predictive frames, but not B-frame, bi-predictive frames which are found in H.264 and VC-1. Theora also does not support Interlaced video, interlacing, or bit-depths larger than 8 bits per component. Theora video streams can be stored in any suitable container format (digital), container format, but they are most commonly found in the container with
Vorbis Vorbis is a free and open-source software project headed by the Xiph.Org Foundation. The project produces an audio coding format and software reference encoder/decoder (codec) for lossy compression, lossy audio compression (data), audio compressi ...
or FLAC audio streams. This combination provides a completely open, royalty-free multimedia format. It can also be used with the Matroska container. The Theora video-compression format is essentially compatible with the VP3 video-compression format, consisting of a backward-compatible superset.Xiph.or
FAQ – Theora and VP3
Retrieved 2 September 2009
Theora is a superset of VP3, and VP3 streams (with some minor syntactic modifications) can be converted into Theora streams without recompression (but not vice versa). VP3 video compression can be decoded using Theora implementations, but Theora video compression usually cannot be decoded using old VP3 implementations.


Theora's predecessor ''On2 TrueMotion VP3'' was originally a proprietary software, proprietary and patent-encumbered
video codecA video codec is software or Computer hardware, hardware that data compression, compresses and Uncompressed video, decompresses digital video. In the context of video compression, ''codec'' is a portmanteau of ''encoder'' and ''decoder'', while a dev ...
developed by On2 Technologies. VP3.1 was introduced in May 2000 and followed three months later by the VP3.2 release, which is the basis for Theora.

Move to free software

In August 2001, On2 Technologies announced that they would be releasing an open source version of their VP3.2 video compression algorithm. In September 2001, On2 Technologies published the source code of the VP3.2 codec under the VP3.2 Public License 0.1, a custom open-source license. The license only granted the right to modify the source code if the resulting larger work continued to support playback of VP3.2 data. In March 2002, On2 responded to the public's reception by relicensing the VP3 codec under the GNU Lesser General Public License. In June 2002, On2 donated VP3 to the Xiph.Org Foundation and offered it under the Ogg Vorbis BSD License, BSD-style license.Linux.com (23 June 2002
Ogg Vorbis, VP3 combining forces to create Open Source multimedia package
Retrieved on 2009-08-16
On2 also made an irrevocable, royalty-free license grant for any patent claims it might have over the software and any derivatives, allowing anyone to use any VP3-derived codec for any purpose.Xiph.or
libtheora license (Subversion – Trunk)
Retrieved on 16 August 2009
VP32 codec license (Subversion – Trunk)
Retrieved on 16 August 2009
In August 2002, On2 entered into an agreement with the Xiph.Org Foundation to make VP3 the basis of a new, free video codec, called Theora. On2 declared Theora to be VP3's successor. On 3 October 2002, On2 and Xiph announced the completion and availability of the initial alpha code release of ''libtheora'', Theora's reference implementation. There is no formal specification for VP3's bitstream format beyond the VP3 source code published by On2 Technologies. In 2003, Mike Melanson created an incomplete description of the VP3 bitstream format and decoding process at a higher level than source code, with some help from On2 and Xiph.Org Foundation. The Theora specification adopted some portions of this VP3 description. A successor to Theora, Daala, was later merged into AV1.

Theora I specification

The Theora I bitstream format was Freeze (software engineering), frozen in June 2004 after the libtheora 1.0alpha3 release. Videos encoded with any version of the libtheora since the alpha3 will be compatible with any future player. This is also true for videos encoded with any implementation of the Theora I specification since the format freeze. The ''Theora I Specification'' was completely published in 2004. Any later changes in the specification are minor updates. The Theora reference implementation libtheora spent several years in Software release life cycle#Alpha, alpha and beta status. The first alpha version was released on 25 September 2002 and the first beta version was released on 22 September 2007. The first stable release of libtheora was made in November 2008. Work then focused on improving the codec's performance in the ''"Thusnelda"'' branch, which was released as version 1.1 in September 2009 as the second stable libtheora release. This release brought some technical improvements and new features, such as the new rate control module and the two-pass encoding, two-pass rate control. The codename for the next version of libtheora is ''Ptalarbvorm''. Theora is well established as a video format in open-source software, open-source applications, and is the format used for Wikipedia's video content. However, the proposed adoption of Theora as part of the baseline video support in HTML5 Use of Ogg formats in HTML5, resulted in controversy.


Encoding performance

Evaluations of the VP3 and early Theora encoders found that their subjective visual quality was inferior to that of contemporary video codecs. More recently however, Xiph developers have compared the 1.1 Theora encoder to YouTube's H.264 and H.263+ encoders, in response to concerns raised in 2009 about Theora's inferior performance by Chris DiBona, a Google employee. They found the results from Theora to be nearly the same as YouTube's H.264 output, and much better than the H.263+ output. The performance characteristics of the Theora 1.0 reference implementation are dominated mostly by implementation problems inherited from the original VP3 code base. Work leading up to the 1.1 stable release was focused on improving on or eliminating these. A May 2009 review of this work shows a considerable improvement in quality, both subjectively and as measured by PSNR, just by improving the forward Discrete cosine transform, DCT and quantisation matrices. A flaw in the version of FFmpeg used in the test initially led to incorrect reports of Theora PSNR surpassing that of H.264/MPEG-4 AVC, H.264. Although not achieving this goal, the improvement in the measured PSNR and the perceived quality is considerable. In any case, the differences in quality, bitrate and file size between a YouTube H.264 video and a transcoded Ogg video file are negligible. Further work on adaptive quantization, as well as overall detailed subjective tuning of the codec, is still to come.

Playback performance

There is an open-source software, open-source VHDL code base for a hardware Theora decoder in development. It began as a 2006 Google Summer of Code project, and it has been developed on both the Nios II and LEON processors. However, there are currently no Theora decoder chips in production, and portable media players, smartphones and similar devices with limited computing power rely on such chips to provide efficient playback. But since decoding Theora is less CPU intensive than decoding H.264, the need for hardware-accelerated Theora decoding may be somewhat less.


Native browser playback

As originally recommended by HTML 5, these browsers support Theora when embedded by the video element: * Mozilla Firefox 3.5 and later versions including Firefox for mobile (Fennec). * Google Chrome as of version including Chromium (web browser), Chromium as of 14 July 2009. *Tizen browser * SeaMonkey as of version 2.0. * Konqueror 4.4.2 * Opera (web browser), Opera as of version Opera 10#10.50, 10.50. It was also supported in History of the Opera web browser#Version 9.5, Opera 9.5 experimental video builds. * Web (web browser), Web uses WebKitGTK+ as its rendering engine. As WebKitGTK+ uses GStreamer to implement the HTML5 media player, and all the formats GStreamer supports (including Theora) are available in browser. * Midori (web browser), Midori is another example of a browser that supports Theora by using WebKitGTK+.

Browser plugins

* Annodex plugin via OggPlay * Cortado (software), Cortado, a Java (programming language), Java based applet ** Itheora, a PHP wrapper for Cortado * Mv Embed HTML 5 video tag wrapper for numerous plugin types. * VLC media player browser plugin for IE or Firefox * Microsoft Edge, via the Web Media Extensions add-on

Supporting media frameworks

* DirectShow with use of OpenCodecs * GStreamer supported via Theora or FFmpeg module, supports :Software that uses GStreamer, GStreamer based applications e.g. Totem (media player), Totem and Songbird (software), Songbird * Phonon (KDE), Phonon * QuickTime (including but not limited to Safari) with use of Xiph QuickTime Components * Silverlight Highgate media suite is going to bring an Open Source Theora/Vorbis implementation in Silverlight. It will enable installation-free support for HTML5 streaming video.

Supporting applications

* FFmpeg (own implementation) * Helix project, Helix Player * Miro Media Player (formerly known as Democracy Player) * MPlayer and front-ends * Songbird (software), Songbird, Totem (media player), Totem, Moovida and all GStreamer-based players * VLC media player, VLC (native support) * xine and all libxine-based players like Kaffeine * Dragon player and all Phonon-based players


There are several third-party programs that support encoding through libtheora: The libtheora library contains the reference implementation of the Theora specification for encoding and decoding. libtheora is still under development by the Xiph.Org Foundation. The library is released under the terms of a BSD licenses, BSD-style license. Also, several media frameworks have support for Theora. * The open-source ffdshow audio/video decoder is capable of encoding Theora videos using its Video for Windows (VFW) multi-codec interface within popular AVI editing programs. It supports both encoding and decoding Theora video streams and uses Theora's alpha 4 libraries. However, many of the more refined features of Theora aren't available to the user in ffdshow's interface. * The GStreamer framework has support for parsing raw Theora streams, encoding and decoding raw Theora streams to/from YUV video



The following streaming media servers are capable of streaming Theora video:


Elphel is the main maker of cameras that record in theora.

See also

* Video editing software * Comparison of video codecs * Comparison of video encoders


External links


Examples of Theora-encoded videos

Why Theora Matters for Internet TV

Theora user manual

RTP Payload Format for Theora Encoded Video – Xiph.OrgIETF Internet-Draft

H.264 and Theora codecs comparison
{{Xiph.org Articles containing video clips Free video codecs Open formats Software using the BSD license Xiph.Org projects