Changes

Jump to: navigation, search

Ogg

4,313 bytes added, 15:50, 8 August 2014
m
moved Ogg on wheels to Ogg over redirect: Reverted move by User:Willy on wheels
== About ==The '''Ogg''' transport bitstream is designed to provide framing, error protection and seeking structure for higher-level codec streams that consist of raw, unencapsulated data packets, such as the [[Opus]], [[Vorbis]] and [[FLAC]] audio codecs or [[Theora]] and [[Dirac]] video codecs.
The == Name == Ogg derives from "ogging", jargon from the computer game Netrek. Ogg transport bitstream is designed to provide framing, error protection not an acronym and seeking structure for higher-level codec streams that consist of raw, unencapsulated data packets, such should not be mentioned as the Vorbis audio codec or Theora video codec"OGG".
== Design constraints for Ogg bitstreams ==
* Simple mechanism to ease limited editing, such as a simplified concatenation mechanism.
* Detection of corruption, recapture after error and direct, random access to data at arbitrary positions in the bitstream.
 == Specification / standard== The Ogg transport bitstream and file format is defined in RFC 3533 approved 2003-May. As RFC documents are invariable once approved, there will never be newer versions of RFC 3533, but an [[RFC_3533_Errata]] exists instead. Existing flaws are discussed at [[OggIssues]], ideas for the future at [[TransOgg]]. == Detecting Ogg files and extracting information == Ogg files do begin with a signature "OggS", this signature also repeats many times inside the file, at the beginning of every page. There are several tools to get information about Ogg files:* Ogginfo - part of Vorbis-Tools, supports Vorbis codec only (historical Ogg-vs-Vorbis issue), other codecs cause it to report garbage* Opusinfo - part of Opus-Tools, supports only Opus codec well, only minimal Vorbis support* Oggz ???* MediaInfo [http://wwwsourceforge.funasianet/projects/mediainfo/ sf.cnnet/projects/ 团购mediainfo]- provides information about media (and some other) files, supports many types, also Ogg with various codecs, generic audio and video information only, no Ogg-specific details
== Projects using Ogg ==
=== Codecs === * [[VorbisOpus]]* [[TheoraCMML]]* [[FLAC]] ([http://flac.sourceforge.net/ogg_mapping.html Ogg mapping])* [[OggKate|Kate]]* [http://opus-codec.org/ Opus] ([[OggOpus|Ogg mapping]])* [[OggPCM|PCM]]* [[Ogg Skeleton|Skeleton]]* [[Speex]] ([[OggSpeex|Ogg mapping]])* [[Theora]] ([[OggTheora|Ogg mapping]])* [[Vorbis]] ([[OggVorbis|Ogg mapping]])* [[OggWrit|Writ]] === Servers === * [http://www.annodex.net/ Annodex]
* [[Icecast]]
* [http://www.metavid.org/ Metavid] == Developer info == * [Writ[GranulePosAndSeeking]] -- a discussion of the interpretation of granulepos, and the algorithm for seeking on Ogg files === Ogg page format === The LSb (least significant bit) comes first in the Bytes. Fieldswith more than one byte length are encoded LSB (least significantbyte) first.  0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1| Byte +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | capture_pattern: Magic number for page start "OggS" | 0-3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | version | header_type | granule_position | 4-7 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | 8-11 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | bitstream_serial_number | 12-15 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | page_sequence_number | 16-19 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | CRC_checksum | 20-23 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |page_segments | segment_table | 24-27 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | 28- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  == Implementations == The Ogg encapsulation format can be handled with the following libraries: * libogg: [http://svn.xiph.org/trunk/ogg/ libogg svn] (C, cross-platform) Low-level Ogg parsing and writing.* liboggz: [http://git.xiph.org/?p=liboggz.git liboggz git] or [http://annodex.net/software/liboggz/index.html DEAD:liboggz] (C, cross-platform) liboggz wraps libogg and provides features such as seeking.* the Ogg Directshow filters: see [http://www.illiminable.com/ogg/ illiminable] (C++, Win32)* [http://www.kfish.org/software/hogg HOgg] (pure Haskell)* [http://www.jcraft.com/jorbis/ JOrbis] (pure Java) contains com.jcraft.jogg* [http://www.sacredchao.net/quodlibet/wiki/Development/Mutagen Mutagen] (pure Python) == See also == * [[Oggless]]* [[MIME Types and File Extensions]]* [[RFC_3533_Errata]] - errors and flaws in the specification* [[Nut_Container]]
== External links ==
* [http://www.xiph.org/ogg/doc/ Ogg documentation]
* [http://www.ietf.org/rfc/rfc3533.txt Ogg RFC]
* [http://en.wikipedia.org/wiki/Ogg Ogg at Wikipedia]
* [http://wiki.multimedia.cx/index.php?title=Ogg Ogg at Multimedia Wiki]
 
[[Category:Ogg]]

Navigation menu