{"id":20267142,"url":"https://github.com/xiph/theora","last_synced_at":"2025-04-07T13:03:50.520Z","repository":{"id":30403506,"uuid":"33956285","full_name":"xiph/theora","owner":"xiph","description":"Reference implementation of the Theora video compression format. Mirror of https://gitlab.xiph.org/xiph/theora","archived":false,"fork":false,"pushed_at":"2025-03-27T18:48:40.000Z","size":19718,"stargazers_count":107,"open_issues_count":4,"forks_count":72,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-03-27T19:39:37.335Z","etag":null,"topics":["codec","compression","libtheora","ogg","theora","video"],"latest_commit_sha":null,"homepage":"https://theora.org/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xiph.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-04-14T20:48:50.000Z","updated_at":"2025-03-27T18:48:44.000Z","dependencies_parsed_at":"2025-03-19T18:39:48.904Z","dependency_job_id":null,"html_url":"https://github.com/xiph/theora","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiph%2Ftheora","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiph%2Ftheora/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiph%2Ftheora/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiph%2Ftheora/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xiph","download_url":"https://codeload.github.com/xiph/theora/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247657275,"owners_count":20974344,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["codec","compression","libtheora","ogg","theora","video"],"created_at":"2024-11-14T12:13:25.176Z","updated_at":"2025-04-07T13:03:50.501Z","avatar_url":"https://github.com/xiph.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Xiph.org Foundation's libtheora\n\n### What is Theora?\n\nTheora was Xiph.Org's first publicly released video codec, intended\nfor use within the Foundation's Ogg multimedia streaming system.\nTheora is derived directly from On2's VP3 codec, adds new features\nwhile allowing it a longer useful lifetime.\n\nThe 1.0 release decoder supported all the new features, but the\nencoder is nearly identical to the VP3 code.\n\nThe 1.1 release, codenamed Thusnelda, featured a completely rewritten\nencoder, offering better performance and compression, and making more\ncomplete use of the format's feature set.\n\nThe 1.2 release, codenamed Ptalarbvorm, features significant\nadditional improvements in compression and performance. Files produced\nby newer encoders can be decoded by earlier releases.\n\n### Where is Theora?\n\nTheora's main site is https://www.theora.org. Releases of Theora\nand related libraries can be found on the\n[download page](https://www.theora.org/downloads/) or the\n[main Xiph.Org site](https://xiph.org/downloads/).\n\nDevelopment source is kept at https://gitlab.xiph.org/xiph/theora.\n\n## Getting started with the code\n\n### What do I need to build the source?\n\nRequirements summary:\n\nFor libtheora:\n\n*   libogg 1.3.4 or newer.\n\nFor example encoder:\n\n*   as above,\n*   libvorbis and libvorbisenc 1.0.1 or newer.\n    (libvorbis 1.3.1 or newer for 5.1 audio)\n\nFor creating a source distribution package:\n\n*   as above,\n*   Doxygen to build the API documentation,\n*   pdflatex and fig2dev to build the format specification\n    (transfig package in Ubuntu).\n\nFor the player only:\n\n*   as above,\n*   SDL (Simple Direct media Layer) libraries and headers,\n*   OSS audio driver and development headers.\n\nThe provided build system is the GNU automake/autoconf system, and\nthe main library, libtheora, should already build smoothly on any\nsystem.  Failure of libtheora to build on a GNU-enabled system is\nconsidered a bug; please report problems to theora-dev@xiph.org,\nhttps://lists.xiph.org/mailman/listinfo/theora-dev or preferably to\nhttps://gitlab.xiph.org/xiph/theora.\n\nWindows build support is included in the win32 directory.\n\nProject files for Apple XCode are included in the macosx directory.\n\nThere is also a more limited scons build.\n\nThe mailing list theora@xiph.org has been created for discussing use\nof the theora video codec, https://lists.xiph.org/mailman/listinfo/theora.\n\n### How do I use the sample encoder?\n\nThe sample encoder takes raw video in YUV4MPEG2 format, as used by\nlavtools, mjpeg-tools and other packages. The encoder expects audio,\nif any, in a separate wave WAV file. Try 'encoder_example -h' for a\ncomplete list of options.\n\nAn easy way to get raw video and audio files is to use MPlayer as an\nexport utility.  The options \" -ao pcm -vo yuv4mpeg \" will export a\nwav file named audiodump.wav and a YUV video file in the correct\nformat for encoder_example as stream.yuv.  Be careful when exporting\nvideo alone; MPlayer may drop frames to 'keep up' with the audio\ntimer.  The example encoder can't properly synchronize input audio and\nvideo file that aren't in sync to begin with.\n\nThe encoder will also take video or audio on stdin if '-' is specified\nas the input file name.\n\nThere is also a 'png2theora' example which accepts a set of image\nfiles in that format.\n\n### How do I use the sample player?\n\nThe sample player takes an Ogg file on standard in; the file may be\naudio alone, video alone or video with audio.\n\n### What other tools are available?\n\nThe programs in the examples directory are intended as tutorial source\nfor developers using the library. As such they sacrifice features and\nrobustness in the interests of comprehension and should not be\nconsidered serious applications.\n\nIf you're wanting to just use theora, consider the programs linked\nfrom https://www.theora.org/. There is playback support in a number\nof common free players, and plugins for major media frameworks.\nJan Gerber's ffmpeg2theora is an excellent encoding front end.\n\n## Troubleshooting the build process\n\n### Compile error, such as:\n\nencoder_internal.h:664: parse error before `ogg_uint16_t`\n\nThis means you have version of libogg prior to 1.3.4. A *complete* new Ogg\ninstall, libs and headers is needed.\n\nAlso be sure that there aren't multiple copies of Ogg installed in\n/usr and /usr/local; an older one might be first on the search path\nfor libs and headers.\n\n### Link error, such as:\n\nundefined reference to `oggpackB_stream`\n\nSee above; you need libogg 1.3.4 or later.\n\n### Link error, such as:\n\nundefined reference to `vorbis_granule_time`\n\nYou need libvorbis and libvorbisenc from the 1.0.1 release or later.\n\n### Link error, such as:\n\n/usr/lib/libSDL.a(SDL_esdaudio.lo): In function `ESD_OpenAudio`:\nSDL_esdaudio.lo(.text+0x25d): undefined reference to `esd_play_stream`\n\nBe sure to use an SDL that's built to work with OSS.  If you use an\nSDL that is also built with ESD and/or ALSA support, it will try to\nsuck in all those extra libraries at link time too.  That will only\nwork if the extra libraries are also installed.\n\n### Link warning, such as:\n\nlibtool: link: warning: library `/usr/lib/libogg.la` was moved.\nlibtool: link: warning: library `/usr/lib/libogg.la` was moved.\n\nRe-run theora/autogen.sh after an Ogg or Vorbis rebuild/reinstall\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxiph%2Ftheora","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxiph%2Ftheora","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxiph%2Ftheora/lists"}