Theora is a free lossy video compression format.[5] It is developed by the Xiph.Org Foundation and distributed without licensing fees alongside their other free and open media projects, including the Vorbis audio format and the Ogg container.
libtheora is a reference implementation of the Theora video compression format being developed by the Xiph.Org Foundation.[6][7]
Theora is derived from the 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 codec.
Theora is named after Theora Jones, Edison Carter's Controller on the Max Headroom television program.[8]
Theora is a variable-bitrate, DCT-based video compression scheme. Like most common video codecs, Theora also uses chroma subsampling, block-based motion compensation and an 8-by-8 DCT block. Pixels are grouped into various structures, namely super blocks, blocks and macroblocks. Theora supports intra-coded frames and forward-predictive frames, but not bi-predictive frames which are found in H.264 and VC-1. Theora also does not support interlacing, or bit-depths larger than 8 bits per component.[2]
Theora video streams can be stored in any suitable container format. Most commonly it is found in the Ogg container with Vorbis or FLAC audio streams which provides a completely open, royalty-free multimedia format. It can also be used with the Matroska container.[9]
The Theora video-compression format is essentially compatible with the VP3 video-compression format, consisting of a backward-compatible superset.[10][11] 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).[11] VP3 video compression can be decoded using Theora implementations, but Theora video compression usually cannot be decoded using old VP3 implementations.
The predecessor On2 TrueMotion VP3 was originally a proprietary and patent-encumbered video codec developed by On2 Technologies. VP3.1 was introduced in May 2000[12] and followed three months later by the VP3.2 release,[13] which is the basis for Theora.
In August 2001, On2 Technologies announced that they would be releasing an open source version of their VP3.2 video compression algorithm.[14][15] In September 2001, On2 Technologies published the source code of the VP3.2 codec under the VP3.2 Public License 0.1[16], a pseudo-open-source custom license.[17][18] The license only granted the right to modify the source code if the resulting larger work continued to support playback of VP3.2 data.[16][19]
In March 2002, On2 responded to the public's reception by relicensing the VP3 codec under the GNU Lesser General Public License.[20] In June 2002, On2 donated VP3 to the Xiph.Org Foundation and offered it under a BSD-like open source license[specify][citation needed].[21][22][23][24] On2 also made an irrevocable, royalty-free license grant for any patent claims it might have over the software and any derivatives,[2] allowing anyone to use any VP3-derived codec for any purpose.[10][25] 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.[26] On2 declared Theora to be the successor in VP3's lineage.[citation needed] On October 3, 2002, On2 and Xiph announced the completion and availability of the initial alpha code release of libtheora, Theora's reference implementation.[27]
There is no formal specification for the VP3 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.[2][28]
The Theora I bitstream format was frozen in June 2004 after the libtheora 1.0alpha3 release.[1] Videos encoded with any version of the libtheora since the alpha3 will be compatible with any future player.[1][29] 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.[30] Any later changes in the specification are minor updates.
The Theora reference implementation libtheora spent several years in alpha and beta status.[29] The first alpha version was released on 2002-09-25.[31] The first beta version was released on September 22, 2007. The first stable release of libtheora was made in November 2008.[32][33] Work then focused on improving the codec performance in the "Thusnelda" branch, which was released as version 1.1 in September 2009 as the second stable libtheora release.[29][34] This release brought some technical improvements and new features, e.g. the new rate control module and the new two-pass rate control.
The codename for the next version of Theora reference implementation (libtheora) is Ptalarbvorm.[35]
Theora is well established as a video format in 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 resulted in controversy.[36]
Evaluations of the VP3[37] and early Theora encoders[38] [39] [40] found their subjective visual quality was inferior to 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.[41] 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.[42][43]
The performance characteristics of the Theora 1.0 reference implementation are dominated mostly by implementation problems inherited from the original VP3 code base.[44] 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 DCT and quantisation matrices.[45] A flaw in the version of FFmpeg used in the test initially led to incorrect reports of Theora PSNR surpassing that of 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.[46] Further work on adaptive quantization, as well as overall detailed subjective tuning of the codec, is still to come.
There is an open source VHDL code base for a hardware Theora decoder in development.[47] It began as a 2006 Google Summer of Code project, and it has been developed on both the Nios II and LEON processors.[48] 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. However since decoding Theora is less CPU intensive than decoding H.264, the need for hardware acceleration may be somewhat obviated.[citation needed]
As originally recommended by HTML 5, these browsers support Theora when embedded by the video
element:
There are several third-party programs that support encoding through libtheora:
Name |
Description |
Operating Systems Supported |
Unix-like |
Mac OS X |
Windows |
- Firefogg
|
A Firefox browser extension implementation of ffmpeg2theora |
Yes |
Yes |
Yes |
- ffmpeg2theora
|
A command-line program that transcodes video by decoding with FFmpeg and reencoding with libtheora to encode it |
Yes |
Yes |
Yes |
- VLC
|
Can transcode to single-pass Theora 1.0 and optionally stream it |
Yes |
Yes |
Yes |
- OggConvert
|
Transcodes supported media to Vorbis, Theora, or Dirac |
Yes |
? |
Yes |
- FreeJ
|
"Video DJing" software that can encode to and stream Theora |
Yes |
Yes |
? |
- Kdenlive
|
The video editor supplied with KDE |
Yes |
? |
? |
- PiTiVi
|
The video editor supplied with GNOME |
Yes |
? |
? |
- LiVES
|
Video editing software for Linux. Can edit, encode and stream theora. |
Yes |
Yes |
? |
- Thoggen
|
A GTK+ and GStreamer based DVD backup utility |
Yes |
? |
? |
- HandBrake
|
Can output to Theora only with the Matroska container |
Yes |
Yes |
Yes |
- Recordmydesktop
|
Records the screen to Ogg Theora with optional Vorbis audio |
Yes |
? |
? |
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-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.[63][64][65] 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[66][67]
Name |
Description |
Operating Systems Supported |
Unix-like |
Mac OS X |
Windows |
- LiVES
|
Video editing software for Linux. Can edit, encode and stream theora. |
Yes |
Yes |
? |
- Kdenlive
|
The KDE video editor. |
Yes |
? |
? |
- OpenShot
|
|
Yes |
? |
? |
- PiTiVi
|
The GNOME video editor. |
Yes |
? |
? |
- Cinelerra
|
CVS versions of the Cinelerra non-linear video editing system support Theora, as of August 2005. |
Yes |
Yes |
? |
- oggz-tools by Xiph.org
|
Command line programs to examine and edit Ogg files. |
Yes |
? |
Yes |
- Ogg Video Tools by yornstreamnik
|
Tools to resize, cut, split, join, and others[68] |
Yes |
Yes |
Yes |
- AVS Video Editor
|
|
? |
? |
Yes |
The following streaming media servers are capable of streaming Theora video:
Name |
Description |
Operating Systems Supported |
Unix-like |
Mac OS X |
Windows |
- VLC
|
|
Yes |
Yes |
Yes |
- Icecast
|
|
Yes |
? |
Yes |
- FreeCast
|
Peer-to-peer streaming. Written in Java |
Yes |
? |
Yes |
- LiVES
|
Can stream ogg/theora/vorbis in realtime to a file or fifo. |
Yes |
Yes |
? |
- Flumotion
|
Streaming media server. |
Yes |
? |
? |
[1] Theora Streaming Studio is a complete client to connect to an Icecast server.
- ^ a b c Giles, Ralph (1 June 2004). "Theora I bitstream freeze". theora-dev mailing list. http://lists.xiph.org/pipermail/theora-dev/2004-June/001112.html. Retrieved 25 September 2009.
- ^ a b c d "Theora Specification" (PDF). Xiph.Org Foundation. 16 March 2011. http://theora.org/doc/Theora.pdf. Retrieved 31 January 2012
- ^ "Theora 1.1.1 release". Xiph.Org Foundation. http://www.theora.org/news/#libtheora-1.1.1. Retrieved 6 October 2009.
- ^ "libtheora 1.2.0alpha1 release". Xiph.Org Foundation. http://lists.xiph.org/pipermail/theora-dev/2010-September/004202.html. Retrieved 10 October 2010.
- ^ http://www.theora.org
- ^ "libtheora Documentation 1.1.0". Xiph.Org Foundation. http://theora.org/doc/libtheora-1.1/. Retrieved 25 September 2009.
- ^ "libtheora". ohloh. http://www.ohloh.net/p/libtheora. Retrieved 25 September 2009.
- ^ "Theora FAQ". Xiph.Org Foundation. http://theora.org/faq/#15. Retrieved 6 August 2009.
- ^ "Matroska Codec Specs". Matroska. http://www.matroska.org/technical/specs/codecid/index.html. Retrieved 6 August 2009.
- ^ a b Xiph.org libtheora license (Subversion - Trunk), Retrieved on 2009-08-16
- ^ a b Xiph.org FAQ - Theora and VP3, retrieved 2009-09-02
- ^ On2 (17 May 2000), On2.com Launches Next Generation of Revolutionary Broadband Video Technology, archived from the original on 2007-12-03, http://web.archive.org/web/20071203064537/http://www.on2.com/index.php?id=486&news_id=407
- ^ On2 (2000-08-16), On2 Introduces TrueMotion VP3.2, archived from the original on 2007-12-03, http://web.archive.org/web/20071203062255/http://www.on2.com/index.php?id=486&news_id=401, retrieved 2010-08-23
- ^ On2 (2001-08-07), On2 Technologies to Open Source VP3.2 Video Compression Technology (archived website), archived from the original on 2007-12-03, http://web.archive.org/web/20071203062120/http://www.on2.com/index.php?id=486&news_id=365
- ^ Mariano, Gwendolyn (2001-08-07). "On2's video codec to go open-source". CNET. http://news.cnet.com/2100-1023-271254.html.
- ^ a b On2 Technologies (2001), VP3.2 Public License 0.1, Xiph.Org Foundation, http://trac.xiph.org/browser/branches/vp32/vp32/VP32_license.txt, retrieved 10 February 2008
- ^ Bernat, Bill (2001-09-07). "On2 Offers Up VP3.2 Source Code". StreamingMedia.com. http://www.streamingmedia.com/Articles/ReadArticle.aspx?ArticleID=64360.
- ^ On2 (2001-09-07), On2 Technologies Makes Video Compression Technology Available to Open-Source Community, archived from the original on 2007-12-07, http://web.archive.org/web/20071207021659/http://www.on2.com/index.php?id=486&news_id=364
- ^ Seibert, Stan (VP3.2 video codec open sourced). "VP3.2 video codec open sourced". vorbis mailing list. http://lists.xiph.org/pipermail/vorbis/2001-September/004554.html.
- ^ "On2 Alters Licensing Terms for VP3; Company Responds to Open Source Community Demands." (Press release). On2 Technologies. 2002-03-28. http://www.thefreelibrary.com/On2+Alters+Licensing+Terms+for+VP3%3b+Company+Responds+to+Open+Source...-a084233138.
- ^ Xiph.Org Foundation (16 March 2011). "Theora Specification" (PDF). Xiph.Org Foundation. p. 1. http://theora.org/doc/Theora.pdf.
- ^ On2 (2002-06-24), VP3 Combines with Vorbis to Create First Open-Source Multimedia Platform, archived from the original on 2007-12-03, http://web.archive.org/web/20071203061350/http://www.on2.com/index.php?id=486&news_id=313
- ^ Linux.com (2002-06-23) Ogg Vorbis, VP3 combining forces to create Open Source multimedia package, Retrieved on 2009-08-16[dead link]
- ^ InternetNews.com (2002-06-24) On2 Throws More Open-Source at MPEG-4, Retrieved on 2009-08-16
- ^ Xiph.org VP32 codec license (Subversion - Trunk), Retrieved on 2009-08-16
- ^ The Free Library (2002-08-01) On2 Signs Pact With Xiph.org to Develop/Support VP3, Retrieved on 2009-08-16
- ^ On2 (2002-10-03), On2 and Xiph Announce Alpha Code Release of Theora, VP3-Vorbis-Based Multimedia Solution, archived from the original on 2007-12-04, http://web.archive.org/web/20071204072126/http://www.on2.com/index.php?id=486&news_id=298
- ^ Mike Melanson (mike at multimedia.cx) (8 December 2004), VP3 Bitstream Format and Decoding Process, Multimedia.cx, http://www.multimedia.cx/vp3-format.txt, retrieved 27 September 2009
- ^ a b c Xiph.Org Foundation (24 September 2009), Theora.org : news, Xiph.Org Foundation, http://theora.org/news/, retrieved 25 September 2009
- ^ "Theora I Specification, Xiph.org Foundation, September 17, 2004" (PDF). Archive.org. 17 September 2004. Archived from the original on 28 September 2004. http://web.archive.org/web/20040928224506/http://www.theora.org/doc/Theora_I_spec.pdf. Retrieved 26 September 2009
- ^ http://linuxtesting.org/upstream-tracker/changelogs/libtheora/1.1.1/changelog.html
- ^ Giles, Ralph (3 November 2008). "Theora 1.0 final release!". theora-dev mailing list. http://lists.xiph.org/pipermail/theora-dev/2008-November/003736.html. Retrieved 4 November 2008.
- ^ "The Xiph.Org Foundation announces the release of Theora 1.0" (Press release). Xiph.Org Foundation. 3 November 2008. http://www.xiph.org/press/2008/theora-release-1.0/. Retrieved 6 August 2009.
- ^ Giles, Ralph (24 September 2009). "libtheora 1.1 (Thusnelda) stable release". theora-dev mailing list. http://lists.xiph.org/pipermail/theora-dev/2009-September/003985.html. Retrieved 24 September 2009.
- ^ "Theora: Ptalarbvorm project update 20100518". 18 May 2010. http://people.xiph.org/~xiphmont/demo/theora/demo9.html. Retrieved 1 July 2010
- ^ McLean, Prince (6 July 2009). "Ogg Theora, H.264 and the HTML 5 Browser Squabble". RoughlyDrafted Magazine. http://www.roughlydrafted.com/2009/07/06/ogg-theora-h-264-and-the-html-5-browser-squabble/. Retrieved 14 Februari 2010.
- ^ "MPEG-4 Codec shoot-out 2002 - 1st installment". Doom9. 2002. http://www.doom9.org/codec-comparisons.htm. Retrieved 19 December 2007.
- ^ Codec shoot-out 2005 - Qualification, Doom9, 2005, http://www.doom9.org/codecs-quali-105-3.htm, retrieved 19 December 2007
- ^ Loli-Queru, Eugenia (12 December 2007). "Theora vs. h.264". OSNews. http://www.osnews.com/story/19019/Theora-vs-h.264/. Retrieved 1 April 2008.
- ^ Halbach, Till (March 2009). "Dirac and Theora vs. H.264 and Motion JPEG2000". http://etill.net/projects/dirac_theora_evaluation/. Retrieved 22 April 2008.
- ^ DiBona, Chris (13 June 2009). "H.264-in-<video> vs plugin APIs". whatwg mailing list. http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-June/020380.html. Retrieved 10 August 2009.
- ^ Maxwell, Greg (13 June 2009). "YouTube / Ogg/Theora comparison". Xiph.Org Foundation. http://people.xiph.org/~greg/video/ytcompare/comparison.html. Retrieved 10 August 2009.
- ^ Maik, Merten (15 June 2009). "Another online-video comparison". Xiph.Org Foundation. http://people.xiph.org/~maikmerten/youtube/. Retrieved 10 August 2009.
- ^ Montgomery, Chris. "Theora "the push for 1.0" update". http://web.mit.edu/xiphmont/Public/theora/demo.html. Retrieved 19 December 2007.
- ^ Blizzard, Christopher. "Theora Update 7 May 2009". http://web.mit.edu/xiphmont/Public/theora/demo7.html. Retrieved 10 May 2009.
- ^ Richmond, Gary. "Firefogg: Transcoding videos to open web standards with Mozilla Firefox". http://www.freesoftwaremagazine.com/columns/firefogg_transcoding_videos_open_web_standards_mozilla_firefox. Retrieved 14 February 2010.
- ^ "Xiph Subversion repository: trunk/theora-fpga". Xiph.Org Foundation. http://svn.xiph.org/trunk/theora-fpga/. Retrieved 2009-08-10.
- ^ "XiphWiki: Theora Hardware". Xiph.Org Foundation. http://wiki.xiph.org/Theora_Hardware. Retrieved 10 August 2009.
- ^ MozillaWiki (18 March 2009), Firefox3.5/Features, MozillaWiki, https://wiki.mozilla.org/Firefox3.5/Features, retrieved 11 October 2009
- ^ Mozilla Corporation (30 June 2009), Mozilla Firefox 3.5 Release Notes, Mozilla Corporation, http://www.mozilla.com/en-US/firefox/3.5/releasenotes/, retrieved 11 October 2009
- ^ Mozilla Corporation (9 February 2010), Firefox Mobile Features, Mozilla Corporation, http://www.mozilla.com/en-US/mobile/features/#cutting-edge, retrieved 9 February 2010
- ^ Google Chrome to support HTML 5 video, SoftSailor, 28 May 2009, http://www.softsailor.com/news/3787-3787.html, retrieved 11 October 2009
- ^ Stephen Shankland (28 May 2009), Google Chrome gets HTML video support, cnet news, http://news.cnet.com/8301-17939_109-10250958-2.html, retrieved 11 October 2009
- ^ Issue 16657: Ensure FFmpeg binaries end up in snapshots on all platforms, google chromium issues list, 14 July 2009, http://code.google.com/p/chromium/issues/detail?id=16657, retrieved 6 Februari 2010
- ^ Robert Kaiser (16 September 2009), What's New in SeaMonkey 2.0 Beta 2, seamonkey-project.org, http://www.seamonkey-project.org/releases/seamonkey2.0b2/changes, retrieved 11 October 2009
- ^ Bugreport: Wish for audio/video element support in Konqueror, 13 May 2007, https://bugs.kde.org/show_bug.cgi?id=145380, retrieved 2 December 2009
- ^ Plans for Konqueror 4.4, 26 November 2009, http://forum.kde.org/viewtopic.php?f=18&t=83851, retrieved 2 December 2009
- ^ Philip Jägenstedt (2009-12-31). "(re-)Introducing <video> - Official blog for Core developers at Opera". Opera. http://my.opera.com/core/blog/2009/12/31/re-introducing-video. Retrieved 2010-01-02.
- ^ Arjan van Leeuwen (2009-12-31). "Happy New Year! - Official blog for Core developers at Opera". Opera. http://my.opera.com/desktopteam/blog/happy-new-year. Retrieved 2010-01-02.
- ^ Experimental Opera-video build with native Ogg Theora support, Opera, 25 April 2007, http://my.opera.com/ResearchWizard/blog/experimental-opera-video-build-with-native-ogg-theora-support, retrieved 11 October 2009
- ^ A call for video on the web - Opera <video> release on Labs, Opera, 7 November 2007, http://dev.opera.com/articles/view/a-call-for-video-on-the-web-opera-vid/, retrieved 11 October 2009
- ^ alp (4 Februari 2010). "HTML5 Theora Video Codec for Silverlight". Alp Toker blog. http://www.atoker.com/blog/2010/02/04/html5-theora-video-codec-for-silverlight/. Retrieved 14 Februari 2010. "The Highgate media suite will bring installation-free support for HTML5 streaming video"
- ^ "ffdshow Summary". http://sourceforge.net/projects/ffdshow-tryout/. Retrieved 23 October 2009.
- ^ Cutka, Milan (4 October 2002). "Theora support in ffdshow a ffvfw". theora-dev mailing list. http://lists.xiph.org/pipermail/theora-dev/2002-October/001329.html.
- ^ "Theora in .ogg no only .avi - ffdshow tryouts Forum". 15 January 2008. http://ffdshow-tryout.sourceforge.net/phpBB2/viewtopic.php?p=2459&sid=6a8a488dd3aebb9e35764e950de65d60. Retrieved 23 October 2009.
- ^ gstreamer.freedesktop.org. "GStreamer Base Plugins 0.10 (0.10.24.1)". http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/. Retrieved 23 October 2009.
- ^ gstreamer.freedesktop.org. "GStreamer Base Plugins 0.10 Plugins Reference Manual - Theora plugin library". http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/gst-plugins-base-plugins-plugin-theora.html. Retrieved 23 October 2009.
- ^ Ogg Video Tools on SourceForge