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 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 Vorbis audio codec or Theora video codec.

+

== Name ==

+

+

Ogg derives from "ogging", jargon from the computer game Netrek. Ogg is not an acronym and should not be mentioned as "OGG".

== Design constraints for Ogg bitstreams ==

== Design constraints for Ogg bitstreams ==

Line 10:

Line 12:

* Simple mechanism to ease limited editing, such as a simplified concatenation mechanism.

* 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.

* 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

Revision as of 01:35, 23 December 2012

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.

Name

Ogg derives from "ogging", jargon from the computer game Netrek. Ogg is not an acronym and should not be mentioned as "OGG".

Design constraints for Ogg bitstreams

True streaming; we must not need to seek to build a 100% complete bitstream.

Use no more than approximately 1-2% of bitstream bandwidth for packet boundary marking, high-level framing, sync and seeking.

Specification of absolute position within the original sample stream.

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