https://wiki.xiph.org/api.php?action=feedcontributions&user=Fsphil&feedformat=atomXiphWiki - User contributions [en]2024-03-28T16:39:20ZUser contributionsMediaWiki 1.40.1https://wiki.xiph.org/index.php?title=List_of_Theora_videos&diff=10178List of Theora videos2009-04-16T08:42:59Z<p>Fsphil: /* Streaming Media */ - Updated link to Phil's Nest Box</p>
<hr />
<div>This is a list of sites where you can download videos encoded with [[Theora]].<br />
<br />
=== Serial and Episodic ===<br />
;[http://www.geekentertainment.tv Geek Entertainment TV]: A weekly video-cast covering technology topics, in an interview format. Many ''Ogg Theora'' format videos in the 2007 and prior archives. <br />
;[http://electrovid.blip.tv/ ElectroVid]: Learn basic electronics from a electrical engineering student attending University of York.<br />
;[http://www.internautas.tv/ Iternautas Television]: Spanish website with clips from the Andaluzian station. Content licensed under CC-BY-NC.<br />
;[http://www.high-density.org/category/episodes-ogg-theora/ High Density]: A show about technology and politics, with a focus on simple explanations for interesting innovations. Hosted by Ramon Cahenzli and Shane Coughlan.<br />
;[http://www.jupiterbroadcasting.com/?cat=4 Linux Action Show]: Video broadcast of the Linux Action Show during live recording. Audio podcasts are vorbis-encoded.<br />
;[http://www.linuxjournal.com/video Linux Journal]: Linux related tips and tricks, in-depth tutorials, product reviews, and insights.<br />
;[http://metavid.org Metavid]: Archive of the House of Representatives and Senate (USA) floor footage.<br />
;[http://dekku.blogspot.com/ No Fat Clips!!!]: Short films, music videos, hip commercials, and other kinds of short visual entertainment. Updated daily. (English and Italian language)<br />
;[http://video.indypgh.org Rustbelt TV]: [http://pittsburgh.indypgh.org Pittsburgh Indymedia's] TV program based on [http://radio.indypgh.org Rustbelt Radio] (audio available as ogg vorbis).<br />
;[http://ryanishungry.com RyanIsHungry]: Features the stories of individuals hacking everyday life, with environmental sustainability.<br />
;[http://revision3.com/thebroken/ thebroken]: Four technology episodes, from 2003 to 2006, that look at the computer hacker mentality.<br />
;[http://www.thesourceshow.org/ the_source]: A video show providing news, reviews, and general discussion about open source initiatives, since 2006.<br />
;[http://www.uncensoredinterview.com/ Uncensored Interview]: Thousands of musician interviews available under a creative commons license and as a Theora-encoded file. Look for the "Download Clip" link above the embedded Flash Player on many of the webpages.<br />
;[http://wftlbytes.com/ WFTL Bytes]: An "''occasiodaily''" FOSS and Linux News Show. Theora-formatted since October 2008.<br />
<br />
=== Video Sharing Services ===<br />
;[http://blip.tv/search?q=ogg Blip.tv]: A video sharing website which allows the upload and the download of ''Ogg Theora'' files.<br />
;[http://olpc.dailymotion.com/ Dailymotion OLPC Group]: A dedicated space to save the videos created by XO users.<br />
;[http://www.engagemedia.org/Members/okvideo/ogg-videos/ Engage Media]: A video sharing website which focuses on social justice and environmental issues in South East Asia.<br />
;[http://theorasea.org/ Theora Sea]: A directory of online and free videos using [http://menguy.aymeric.free.fr/theora/ ITheora].<br />
;[http://tinyvid.tv/ TinyVid]: An experimental Ogg video uploading site, which exists to test out usage of the HTML 5 video and audio elements with the Ogg codecs. You'll need a web browser that can playback Ogg media using ''video'' and ''audio'' tags, to display this video media.<br />
;[http://v2v.cc/ V2V]: A video syndication network which uses only open source software, in order to provide free and equal access to the video source.<br />
;[http://commons.wikimedia.org/ Wikimedia Commons]: An archive database of [http://commons.wikimedia.org/wiki/Special:Statistics more than 4'000'000] media files ([http://commons.wikimedia.org/wiki/Commons:MIME_type_statistics over 2500 of them] are video), to which anyone can contribute.<br />
Note: A list of video sharing websites which support the ''upload'' of Ogg files can be found on [http://en.wikipedia.org/wiki/Comparison_of_video_services#Upload_file_formats Wikipedia], all of them however will force-convert all incoming videos into a "flash" format, thus apply a "free and lossy into proprietary and lossy" conversion. The page ''doesn't'' contain any information about video services allowing to ''host'' files in OGG format.<br />
<br />
=== Short Films ===<br />
;[http://intanto.org/cgi-bin/lala.sh?video 11200 Undo]: A short movie about computer, religion, sex, glue and so on...<br />
;[http://www.bigbuckbunny.org/index.php/download/ Big Buck Bunny] (2008): An open content, short animated film by the Blender Institute. Also known as by the project codename, Peach. Available in 720p and smaller sizes.<br />
;[http://wiki.xiph.org/index.php/Elephants_Dream Elephants Dream] (2006): An open content, short animated film by the Blender Institute. Also known as by the project codename, Orange. [http://orange.blender.org/background More about the project...]<br />
;[http://internetarchive.wordpress.com/2008/11/25/rederiving-our-movies-to-ogg-theora-and-more/ Internet Archive]: Thousands of digital movies which range from classic full-length films, to daily alternative news broadcasts, to videos of every genre.<br />
;[http://www.polycrystal.org/lego/movies.html Lego Movies]: Two short movies: ''A New Computer'' and ''Swim''.<br />
;[http://www.flashingtwelve.brickfilms.com/Website/films.html More Lego Movies]: Submissions from an animation contest. Also available as [http://flashingtwelve.brickfilms.com/Website/OperaDemo.html HTML-5 video tag elements] on a separate page.<br />
;[http://www.naomiklein.org/shock-doctrine/short-film Shock Doctrine]: A short film by Alfonso Cuarón and Naomi Klein, directed by Jonás Cuarón.<br />
;[http://www.sitasingstheblues.com/wiki/index.php?title=SitaSites Sita Sings the Blues] (2009): Acclaimed, animated film by Nina Paley.<br />
;[http://footage.stealthisfilm.com/ Steal This Film 2] (2007): Video archive of the numerous interviews used, and not used, in the documentary.<br />
;[http://www.archive.org/details/VoyagetothePlanetofPrehistoricWomen Voyage to the Planet of Prehistoric Women] (1967) and [http://www.archive.org/details/TheSnowCreature The Snow Creature] (1954): Full-length public domain movies from the Internet Archive's [http://www.archive.org/details/feature_films collection].<br />
<br />
=== Scientific Demonstrations ===<br />
;[http://ptaff.ca/orage_montreal/?lang=en_CA 1696 Lightnings]: Visual and audible demonstration of a lightning storm in Montreal.<br />
;[http://www.deepvision.ca/tech_example4.php Deep Vision]: Technical demonstrations of the features of Deep Vision's ''Machine Perception''.<br />
;[http://www.rethaw.com/wp/category/videos/ Rethaw]: Conceptual resonance with ice, by David Steinberg.<br />
;[http://selectparks.net/~julian/index.php?entry=entry060602-125815 SysBlog]: Two videos on computer graphic engines: ''fijuu2'' and ''q3apd''.<br />
<br />
=== Streaming Media ===<br />
;[http://www.editingarchive.com/eatv/ Editing Archive TV]: Streams unlicensed Japanese anime, amateur machinima films, and video game captures.<br />
;[http://webcam.firestorm.cx/ Phil's Nest Box]: Live video from nest boxes in the UK.<br />
;[http://www.live-radio.ru:8111/video.ogg Rare Music Live]: Rare international contemporary indie rock music videos. (Russian language)<br />
;[http://iptv.okto.tv:8080/okto.ogg.m3u Theora Livestream]: from Vienna based community TV station [http://okto.tv Okto]<br />
;[http://www.lodzkie.pl/lodzkie/sesjaSejmikuWL_online.html Transmisje Sejmiku Województwa Łódzkiego]: A live broadcast of the Sejmik of the Łódź Voivodship in Poland (regional parliament). (available only when meetings take place, in polish)<br />
;[http://tvmallorca.net/pages/tv_online TV Mallorca]: Streams the ''Mallorca'' television station content through streaming online. (Spanish language)<br />
;[http://www.vaguetv.com/ VagueTV]: A spring-off project from Radio Vague, and distributed under the GNU Free Document License.<br />
;[http://www.visonair.tv/ Visonair.tv]: Provides video producers open-access to online media streaming, in a format stylized after a television channel.<br />
;[http://modulix.org/ WebTV]: Télévision libre - Contenu Libre. (French language)<br />
<br />
=== GNU/Linux Philosophical ===<br />
;[http://computerworld.co.nz/news.nsf/news/1461E04FC8D3293FCC2574A500173A09 Computerworld]: Recording of a speech on copyright, at Auckland University, New Zealand.<br />
;[http://support.creativecommons.org/videos/ Creative Commons]: Informational videos about Creative Commons, a charitable corporation which promotes alternative copyright licenses.<br />
;[http://free-electrons.com/community/videos/conferences/en Free Electrons Conferences]: Technical talks given at conferences about free software.<br />
;[http://www.gnu.org/fry/ Freedom Fry]: Short film celebrating the 25th anniversary of the GNU operating system, starting Stephen Fry, entitled ''Happy birthday to GNU''.<br />
;[http://audio-video.gnu.org/ GNU and FSF Audio and Video Repository]: Collection of audio and video content, primarily speeches on Free Software.<br />
;[http://gplv3.fsf.org/av GPLv3 Conference, January 16-17 2006]: Speeches by Peter Brown, Eben Moglen and Richard Stallman.<br />
;[http://www.initmarketing.tv/ InitMarketing.tv]: Open source software marketing videos.<br />
;[http://www.gnu.org/philosophy/audio/audio.html GNU Project's Philosophy Speeches]: Featuring Richard Stallman and others.<br />
;[http://punkcast.com/905/ PUNKCAST#905]: Two speeches by Richard Stallman: ''What's GNU?'' and ''St. IGNUcius''.<br />
;[http://www.chtlj.org/ Santa Clara Computer and High Technology Journal]: Several lecture videos including the 2008 Symposium.<br />
;[http://www.opensourcetv.tv/ Utah Open Source Conference 2008]: Week-long conference to discuss Novell, GNOME, and other topics related to the open source community in the state of Utah of USA.<br />
<br />
=== GNU/Linux Technical ===<br />
;[http://wiki.debconf.org/wiki/Videoteam Debian Videos]: the annual Debian developers meeting, an event filled with discussions and workshops. <br />
;[http://fedoraproject.org/wiki/RenderingProject/aiglx AIGLX]: Demonstration videos for AIGLX, a project that aims to enable GL-accelerated effects on a standard desktop.<br />
;[http://dimitris.glezos.com/weblog/2008/03/26/fosscomm-recap/ Community ''foo'']: A speech by Dimitris Glezos, from the Fedora Project, at FOSSComm 2008. (Greek language)<br />
;[http://linux.dell.com/vlogs/ Dell Linux Engineering Vlogs]: Recordings of interviews from Dell's Linux team, from 2006.<br />
;[http://linmagazine.co.il/fedora/2008/02/06/fedora-9-alpha Fedora 9]: Video demonstration of Resizing feature in Fedora 9. (Hebrew language)<br />
;[http://video.fosdem.org/ FOSDEM Speeches]: Video recordings of ''Free and Open Source'' developer talks held at FOSDEM editions from 2005 and onward.<br />
;[http://www.kde.org/announcements/4.2/ KDE 4.2]: Announcement of the new KDE free desktop solution uses several videos to demonstrate the new features.<br />
;[http://dot.kde.org/1213190021/ KDE Day]: Video recordings of technical talks at a conference commemorating the release of KDE 4, in Toulouse, France.<br />
;[http://www.linuxgamingworld.com/ Linux Gaming World]: Website focusing on commercial GNU/Linux games, with many video trailers in ''Ogg Theora'' format.<br />
;[http://macslow.thepimp.net/ MacSlow Blog]: A few videos demonstrating GUI elements, linked from a developer's blog.<br />
;[http://www.novell.com/brainshare/keynotes.html Novell Brainshare]: The three keynote speeches which were presented at Novell's Brainshare, in 2006.<br />
;[http://blog.boucault.net/ Omphaloskeptical]: Blog about GStreamer and Elisa with many screencast tutorials.<br />
;[http://www.opensourcetv.tv/ Open Source TV]: A collection of open source related videos.<br />
;[http://www.ramin.com.au/linux/acs-os-sig.html Open Source Video]: Presentation and lecture notes on video editing and publication using open source tools and ''Ogg Theora'' video.<br />
;[http://www.opensourceworldconference.com/oswc/programme Open Source World Conference]: Video recordings of technical talks, held October 2008. (Spanish language)<br />
;[http://www.redhat.com/solutions/info/videos/ Red Hat Videos]: Videos about the GNU/Linux vendor's customers and solutions.<br />
;[http://ozlabs.org/~rusty/index.cgi/tech/2009-01-14.html Rusty's]: Video demonstration of libantithread 0.1, on Rusty's Bleeding Edge Page.<br />
;[http://tube.opensuse.org/ tube.openSUSE.org]: The official repository of videos by the openSUSE people, such as software developer interviews, instructional screencasts, and conference speeches.<br />
;[http://www.twistedlincoln.com/linuxclass Twisted Lincoln]: Two instructional videos on the use of the GNU/Linux operating system.<br />
;[http://screencasts.ubuntu.com/ Ubuntu Screencasts] and [http://videos.ubuntu.com/ Ubuntu Videos]: Video tutorials and graphical demonstrations on how to use the Ubuntu operating system.<br />
;[http://blog.eracc.com/2009/02/04/windows-98-linux-and-virtualbox-maybe/ VirtualBox Demonstration]: The ERACC Web Log discusses running the Windows 98 operating system with VirtualBox.<br />
;[http://www.yofrankie.org/?p=514 Yo Frankie!]: A technology demonstration of an open source, 3D video game, created by the Blender Institute. Code named ''Apricot''.<br />
<br />
=== Web/Internet Technical ===<br />
;[http://media.annodex.net/cmmlwiki/Special:ListHTML Annodex]: Combination of ''Theora'' video examples, from Open Source Forum 2005 and other events. Annodex applies open standards in annotating and indexing networked media. Software, produced by Annodex, is [http://www.linuxworld.com.au/article/274174/wikipedia_video_gets_boost_100_000_mozilla_grant used by Wikipedia to host ''Theora'' media] online<br />
;[http://welcomebackstage.com/2009/04/rd-tv-a-collaborative-project-between-bbc-backstage-rad/ BBC R&DTV]: A pilot project made up of interviews from knowledgeable BBC developers, BBC project experts and external experts from around the world, which includes uncut footage under a creative commons non-commercial attribution v2 license.<br />
;[http://www.unix-ag.uni-kl.de/~fischer/blog/20071230_Ogg_Theora_Applet_instead_of_Flash/ Cortado Demonstration]: A Java applet by GStreamer that can stream Ogg Theora files, so video media can be embedded into webpages. This site also provides instructions on using the applet.<br />
;[http://szeged2008.drupalcon.org/ Drupalcon 2008]: Recordings of conference speeches in ''Ogg Theora'' format. Drupal is an website framework and ''Free Software''.<br />
;[http://envycasts.com/ Envy Casts]: Tutorials available for download in ''Ogg Theora'' after purchase. Instructor led training for Ruby on Rails computer programming.<br />
;[http://www.mozilla.com/en-US/firefox/video/ Firefox 3 Screencast]: Firefox 3 screenshot and advertising video<br />
;[http://www.double.co.nz/video_test/ Firefox] and [http://dev.opera.com/articles/view/a-call-for-video-on-the-web-opera-vid/ Opera] HTML5 Tests: Implementation examples of the HTML "video tag", using ''Theora'' video formats.<br />
;[http://annevankesteren.nl/2008/09/fronteers-html5-video HTML5 Demonstration]: Anne van Kesteren's Fronteers HTML 5 presentation which has ''video'' tags embedded in the presentation itself.<br />
;[http://www.niallkennedy.com/blog/ Naill Kennedy Blog]: Web journal that explores how syndication and new business are changing life on the web, including insight into [http://www.niallkennedy.com/blog/2006/10/video-search.html video technologies]. Presentations are encoded into ''Theora'' format.<br />
;[http://peepcode.com/ PeepCode Screencasts]: Hour-long instruction videos that teach Ruby on Rails website development.<br />
;[http://realeyes.sourceforge.net/technology.html Realeyes Demonstration]: A [http://www.gnu.org/licenses/gpl.html GPL-licensed] ''C'' library of functions that maintain state information and analysis results about streams of data. These instructional videos walkthrough a network Intrusion Detection System application, based on this library.<br />
;[http://www.rumblingedge.com/2009/03/10/nus-cs3108-mid-way-presentations-on-video/ Thunderbird Presentations]: University students presenting information about their experiences within the Thunderbird project. Thunderbird is an open source email client, for desktop computers.<br />
;[http://www.qdh.org.uk/wordpress/?p=261 Timeline Widget]: A visual introduction to a simple web widget, which illustrates scaling, zooming, and panning.<br />
;[http://transparencycamp.org/videos/ Transparency Camp]: Interviews with keynote speakers at the 2009 Transparency Camp conference. The conference addressed using computer technology for a more open and accountable governance.<br />
;[http://lachy.id.au/log/2007/06/webjam3 WebJam 3]: Short video highlight of the WebJam 3, held in 2007. Media is free of copyright restrictions (public domain).<br />
<br />
=== Uncatergorized videos ===<br />
;[http://events.ccc.de/congress/2008/wiki/Conference_Recordings 25C3 Recordings]: Computer-security conference speeches.<br />
;[http://www.wesnoth.org/wiki/Trailer Battle of Wesnoth Trailer]: The Battle for Wesnoth is a free, turn-based strategy computer game with a fantasy theme. Video licensed under GNU Free Documentation License.<br />
;[http://lessig.org/content/av/ Lawrence Lessig Videos]: Video recordings of speeches and presentations given by Lawrence Lessig on such topics as copyright ''fair use'' and the Creative Commons License. Various media formats, including Theora-encoded.<br />
;[http://open-government.us/ Open Government Petition]: Lawrence Lessig and the Mozilla Foundation have created an online petition for a technologically open (USA) federal government. The video on the web site is in three formats, including ''Theora''.<br />
;[http://pad.ma/about Public Access Digital Media Archive]: Online archive of densely text-annotated video material, primarily footage and not finished films. The entire collection is searchable and viewable online, and is free to download for non- commercial use. <br />
;[http://www.pragprog.com/screencasts Pragmatic Programmer]: Technical tutorial screencasts for sale. Some screencasts and screencast previews are available in ''Ogg Vorbis'' format, including ''The Ruby Object Model and Metaprogramming'', ''Erlang by Example'', and ''Everyday Active Record''.<br />
;[http://ulm.ccc.de/ChaosSeminar Ulm CCC Chaosseminar]: Computer-security conference speeches. (German language)<br />
<br />
== See also== <br />
{{Template:Theora}}<br />
<br />
[[Category:Theora]]</div>Fsphilhttps://wiki.xiph.org/index.php?title=OggDirac&diff=7259OggDirac2007-08-20T20:31:29Z<p>Fsphil: /* Granulepos */</p>
<hr />
<div>'''This is a proposed draft of how to encapsulate the [http://dirac.sourceforge.net Dirac] video codec bitstream within an Ogg container'''<br />
<br />
This document is intended to reflect current thinking about how to do this; something will be finalized after feedback from implementation. It is based on the description of Dirac in the [http://dirac.sourceforge.net/DiracSpec0.9.pdf 0.9 specification],<br />
updated based on more recent discussion.<br />
<br />
= Specification =<br />
<br />
An Ogg Dirac logical bitstream encapsulates a single Dirac sequence, beginning with the Stream Identifier, continuing with one or more Access Units, and ending with the Stop Sequence. Any additional following sequences (which may have different decode or display parameters) must be placed in separate Ogg logical bitstreams and concatenated to make a chained Ogg physical bitstream.<br />
<br />
== Packetization ==<br />
<br />
The Dirac bitstream is divided into Ogg packets as follows:<br />
<br />
* the beginning-of-stream (bos) packet consists solely of the 8-octet Stream Identifier "KW-DIRAC" and no other data<br />
* following the Stream Identifier/bos packet, each 'Parse Unit' (either RAP "header" or Frame Data Unit) is packed into and individual Ogg packet. These constitute the body of the stream.<br />
* the end-of-stream (eos) packet consists solely of the 4-octet stop sequence (which can be viewed as an empty Parse Unit) and no other data<br />
<br />
== Granulepos ==<br />
<br />
The Ogg granulepos field uses the "keyframe granule shift" mechanism (in common with Theora and CMML) to point to the beginning of the current access unit, and otherwise counts video frames, since Dirac has a fixed frame rate.<br />
<br />
The granulepos field for each packet is derived from a count of the number of frames decodable in continuous playback, including the data in that packet. Thus, if the frame data is sent in display order the first Frame Data Unit (with FRAME_NUMBER_OFFSET=0) would have a count of 1, the second a count of 2 and so on. However, Dirac Frame Data Units are in general stored in the bitstream in coded order; that is frames used for prediction may be placed ahead of their display order ahead of other frames that depend on them. In these cases the granulepos does not advance until after the packet directly before the actual display time of the reordered packet. This maintains consistency with the "count of decodable frames" definition and also minimizes buffering requirements in interleaved streams.<br />
<br />
For example, suppose we have (in display order) an Intra frame, followed by two bi-predictive frames, followed by a back-predictive frame which is also a reference for the two bi-predictive frames.<br />
<br />
<pre><br />
Display order: 1I 2B 3B 4P<br />
Coded order: 1I 4P 2B 3B<br />
granulepos: 1 1 2 4<br />
</pre><br />
<br />
So the intra frame receives a granulepos of 1 (or n+1 if we're in the middle of a stream) since it advances the count of decodable frames. The next packet is the P frame which will be displayed as the 4th frame. Since we do not yet have enough information to decode up to the 4th frame, granulepos does not advance and the second packet receives the same granulepos as the first. The third packet is the first bi-predictive frame. It will be displayed second, after being decoded with reference to the 1st and 4th frames, and so the granulepos count will be set to 2. The fourth packet is the second bi-predictive frame. It is to be displayed 3rd, but once it is received, the decoder is also ready to display the 4th frame which has already been processed. Therefore the granulepos count advances twice; once for the current decodable frame, and once for the stored frame.<br />
<br />
Note that this scheme means that the encoder or muxer must keep a list of out-of-order frames so it knows when to apply their increments to the count of decodable frames. Reordered frames can be detected by comparing the frame number in the Parse Unit header with the current count.<br />
<br />
The above describes how a decodable frame count is determined for each Frame Data Unit. Random Access Point packets contain only decode parameters and so also do not advance the count of decodable frames.<br />
<br />
Dirac defines 'Access Units' (AUs) to assist with beginning playback after a seek. Each begins with a Random Access Point (RAP) Parse Unit which contains a copy of the decode and display parameters for the stream. This is followed immediately by an Intra frame, and the encoder guarantees that the stream will be decodable starting there. That is, no frame to be displayed after the start of a new AU may depend on frames previous to the start of that AU. Because of the FDU reordering described above, frames whose display time belongs to the previous Access Unit may actually be placed in the bitstream after the beginning of the next; however such frames can simply be discarded when beginning playback.<br />
<br />
This mechanism is provided because the dependencies upon previous frames can be complicated, so simply beginning playback at previous Intra frame (as in Theora) does not suffice. Likewise, because AU boundaries where decoding can be restarted can be quite far apart, it is expedient to provide a mechanism to find them during seeking. To do so Ogg Dirac uses the "keyframe granule shift" mechanism to store the count of decoded frames in the Ogg granulepos field is a way that also represents an offset to the start of the Access Unit.<br />
<br />
The 64 bit granulepos field for an Ogg Dirac packet is divided into two fields. The higher-order field stores the decodable frame count (as described above) 'as it was at the start of the current access unit'. The lower order field stores the difference between the current count and the value in the higher-order field. Thus, the two fields must be added to get the current count of decodable frames, while in seeking, the value in the lower-order field provides a rough offset (in frames, which can be divided by the framerate to calculate a temporal seek point) which can be used to seek again for the closest previous point where decoding can be restarted.<br />
<br />
Dirac defines a maximum of 2^30 frames in a given access unit, and there is no way to mark a lower limit (outside of the currently undefined profile and level specs) so the lower-order field of the granulepos is always 30 bits, even though in practice most streams will not need that much. With (-1) having a special meaning in Ogg, this effectively leaves 33 bits to hold the total frame count, which at 60 fps is 4 years before a rollover. Not wonderful, but workable.<br />
<br />
'''Needs clarification:''' what exact granulepos does the RAP packet at the beginning of the access unit get, and where exactly does the offset described above point? If we apply the 'count of decodable frames' across an AU boundary, neither the RAP nor an I frame that is followed by predicted frames from the previous AU actually advance the granelupos and so the shift will point to a bit after the AU boundary.<br />
<br />
== Paging ==<br />
<br />
Ogg packets are packed into Ogg pages to make a logical (or degenerate physical) Ogg bitstream. Following best practices, the following rules apply:<br />
<br />
* The Ogg Dirac bos packet MUST occur on a page by itself<br />
* Each Access Unit MUST begin at the start of a page (i.e. there must be a page flush before it) to simplify seeking and editing<br />
<br />
An implementation might want to choose an Ogg Page size near the average size of the Dirac packets to best balance overhead and interleave granularity.<br />
<br />
''Needs clarification:'' The RAP header is considered part of the Access Unit it heads and thus we might not require a page break<br />
after it. However, doing so for the first one places the setup data for other interleaved codecs closer to the beginning of the stream, so it might be a good idea to require it for that instance?<br />
<br />
== Multiplexing == <br />
<br />
When multiplexing an Ogg Dirac logical bitstream the usual rule of ordering Ogg pages by the temporal equivalent of their marked granulepos is followed. At the beginning of a chain segment, all the bos pages must occur together before any non-bos pages. eos pages may occur anywhere in the stream, but after an eos page, further pages with that serial number must not occur.<br />
<br />
If Dirac video is the primary media track in the file, the bos page for the Dirac logical bitstream should occur first in the file. If there are multiple Dirac streams multiplexed together, the muxer should place the "default" choice for naive playback as the first bos page.<br />
<br />
It is recommended that an Ogg Dirac file include an OggSkeleton stream to describe its components and incorporate metadata. If it does so, the OggSkeleton bos page should occur first, and the other bos pages may occur in any order.<br />
<br />
== Streaming Considerations ==<br />
<br />
This mapping is a little unusual in that the bos packet contains only a codec identification magic number and no actual decode parameters. However, the next packet in the stream must be the start of an 'Access Unit', which is always a RAP Parse Unit which does contain such details. The RAP packet is equivalent to the "codec setup header" packets used by the Vorbis and Theora codecs, but all the information is in a single packet. Unlike Vorbis and Theora this packet may repeat throughout the bitstream, flagging points where decoding can be restarted. Since one also appears (with granulepos 0|0) as the second packet in the Ogg stream, the usual "Icecast-style" Ogg streaming server logic will work; however the decoder (a) may not be able to decode all frames until the next in-band RAP packet occurs and (b) will technically be receiving an invalid Dirac stream if the server prepended the RAP at an arbirary point in the stream. Therefore Dirac still requires special-case handling in an Ogg-based streaming server, either editing the stream<br />
after sending a cached RAP, or not caching the RAP at all.</div>Fsphil