Filename extension | .ogg, .ogv, .oga, .ogx, .ogm, .spx, .opus |
---|---|
Internet media type | video/ogg, audio/ogg, application/ogg |
Magic number | OggS |
Developed by | Xiph.Org Foundation |
Initial release | May 2003 |
Type of format | Container format |
Container for | Vorbis, Theora, Speex, Opus, FLAC, Dirac, and others. |
Open format? | Yes |
Free format? | Yes [1] |
Developer(s) | Xiph.Org Foundation |
---|---|
Initial release | 22 September 2004 |
Stable release | 1.3.5 / 4 June 2021 |
Type | Reference implementation (multiplexer/demultiplexer) |
License | BSD-style license [2] |
Website | downloads |
Ogg is a free, open container format maintained by the Xiph.Org Foundation. The authors of the Ogg format state that it is unrestricted by software patents [3] and is designed to provide for efficient streaming and manipulation of high-quality digital multimedia. Its name is derived from "ogging", jargon from the computer game Netrek . [4]
The Ogg container format can multiplex a number of independent streams for audio, video, text (such as subtitles), and metadata.
In the Ogg multimedia framework, Theora provides a lossy video layer. The audio layer is most commonly provided by the music-oriented Vorbis format or its successor Opus. Lossless audio compression formats include FLAC, and OggPCM.
Before 2007, the .ogg filename extension was used for all files whose content used the Ogg container format. Since 2007, the Xiph.Org Foundation recommends that .ogg only be used for Ogg Vorbis audio files. The Xiph.Org Foundation decided to create a new set of file extensions and media types to describe different types of content such as .oga for audio only files, .ogv for video with or without sound (including Theora), and .ogx for multiplexed Ogg. [5]
As of November 7, 2017, the current version of the Xiph.Org Foundation's reference implementation is libogg 1.3.3. [6] Another version, libogg2, has been in development, but is awaiting a rewrite as of 2018. [7] Both software libraries are free software, released under the New BSD License. Ogg reference implementation was separated from Vorbis on September 2, 2000. [8]
Ogg's various codecs have been incorporated into a number of different free and proprietary media players, both commercial and non-commercial, as well as portable media players and GPS receivers from different manufacturers.
The Ogg Vorbis project started in 1993. It was originally named "Squish" but that name was already trademarked, so the project underwent a name change. The new name, "OggSquish", was used until 2001 when it was changed again to "Ogg". Ogg has since come to refer to the container format, which is now part of the larger Xiph.org multimedia project. Today, "Squish" (now known as "Vorbis") refers to a particular audio coding format typically used with the Ogg container format.
Ogg is derived from "ogging", jargon from the computer game Netrek , which came to mean doing something forcefully, possibly without consideration of the drain on future resources. [4] [ failed verification ] At its inception, the Ogg project was thought by the authors to be somewhat ambitious given the limited power of the PC hardware of the time. Although the name Ogg is unrelated to the character Nanny Ogg in Terry Pratchett's Discworld novels, "Vorbis" is named after another Terry Pratchett character from the book Small Gods. [9]
The "Ogg" bitstream format, designed principally by the Xiph.Org Foundation, has been developed as the framework of a larger initiative aimed at producing a set of components for the coding and decoding of multimedia files, which are available free of charge and freely re-implementable in software and hardware.
The format consists of chunks of data each called an "Ogg page". Each page begins with the characters "OggS" to identify the file as Ogg format.
A "serial number" and "page number" in the page header identifies each page as part of a series of pages making up a bitstream. Multiple bitstreams may be multiplexed in the file where pages from each bitstream are ordered by the seek time of the contained data. Bitstreams may also be appended to existing files, a process known as "chaining", to cause the bitstreams to be decoded in sequence.
A BSD-licensed library, called "libvorbis", is available to encode and decode data from "Vorbis" streams. Independent Ogg implementations are used in several projects such as RealPlayer and a set of DirectShow filters. [10]
Mogg, the "Multi-Track-Single-Logical-Stream Ogg-Vorbis", is the multi-channel or multi-track Ogg file format.
The following is the field layout of an Ogg page header:
Bit | Value | Flag | Page type |
---|---|---|---|
0 | 0x01 | Continuation | The first packet on this page is a continuation of the previous packet in the logical bitstream. |
1 | 0x02 | BOS | Beginning Of Stream. This page is the first page in the logical bitstream. The BOS flag must be set on the first page of every logical bitstream, and must not be set on any other page. |
2 | 0x04 | EOS | End Of Stream. This page is the last page in the logical bitstream. The EOS flag must be set on the final page of every logical bitstream, and must not be set on any other page. |
The segments provide a way to group segments into packets, which are meaningful units of data for the decoder. When the segment's length is indicated to be 255, this indicates that the following segment is to be concatenated to this one and is part of the same packet. When the segment's length is 0–254, this indicates that this segment is the final segment in this packet. Where a packet's length is a multiple of 255, the final segment is length 0.
Where the final packet continues on the next page, the final segment value is 255, and the continuation flag is set on the following page to indicate that the start of the new page is a continuation of last page.
VorbisComment is a base-level Metadata format initially authored for use with Ogg Vorbis. It has since been adopted in the specifications of Ogg encapsulations for other Xiph.Org codecs including Theora, Speex, FLAC and Opus. VorbisComment is the simplest and most widely supported mechanism for storing metadata with Xiph.Org codecs. [11]
Notably,[ attribution needed ] one or more METADATA_BLOCK_PICTURE=... in a VorbisComment for thumbnails and cover art have Base64-encoded values of the corresponding FLAC METADATA_BLOCK_PICTURE. In other words, FLAC stores thumbnails and cover art in binary blocks—outside of the FLAC tags in a little-endian METADATA_BLOCK_VORBIS_COMMENT. [12] [13]
Other existing and proposed mechanisms are: [14]
The Ogg project began with a simple audio compression package as part of a larger project in 1993. [9] The software was originally named Squish but due to an existing trade mark it was renamed to OggSquish . This name was later used for the whole Ogg project. In 1997, the Xiphophorus OggSquish was described as "an attempt both to create a flexible compressed audio format for modern audio applications as well as to provide the first audio format that is common on any and every modern computer platform". [16] The OggSquish was in 2000 referred to as "a group of several related multimedia and signal processing projects". In 2000, two projects were in active development for planned release: Ogg Vorbis format and libvorbis—the reference implementation of Vorbis. Research also included work on future video and lossless audio coding. [9] [17] [18] [19] [20] In 2001, OggSquish was renamed to Ogg and it was described as "the umbrella for a group of several related multimedia and signal processing projects". [21] Ogg has come to stand for the file format, as part of the larger Xiph.org multimedia project. Squish became just the name of one of the Ogg codecs. [9] In 2009, Ogg is described as "a multimedia container format, and the native file and stream format for the Xiph.org multimedia codecs". [22]
The Ogg reference implementation was separated from Vorbis on September 2, 2000. [8]
In May 2003, two Internet RFCs were published relating to the format. The Ogg bitstream was defined in RFC 3533 (which is classified as 'informative') and its Internet content type (application/ogg
) in RFC 3534 (which is, as of 2006 [update] , a proposed standard protocol). In September 2008, RFC 3534 was obsoleted by RFC 5334, which added content types video/ogg
, audio/ogg
and filename extensions .ogx, .ogv, .oga, .spx.
In 2002, the lack of formal video support in Ogg resulted in the development of the OGM file format, a hack on Ogg that allowed embedding of video from the Microsoft DirectShow framework into an Ogg-based wrapper. OGM was initially supported only by closed source Windows-only tools, but the codebase was subsequently opened. Later, video (and subtitle) support were formally specified for Ogg but in a manner incompatible with OGM. Independently, the Matroska container format reached maturity and provided an alternative for people interested in combining Vorbis audio and arbitrary video codecs. As a result, OGM is no longer supported or developed and is formally discouraged by Xiph.org. [23] Today, video in Ogg is found with the .ogv file extension, which is formally specified and officially supported. Software and codecs that support .ogm files are available without charge. [24]
Although Ogg had not reached anywhere near the ubiquity of the MPEG standards [25] (e.g., MP3/MP4), as of 2006 [update] , it was commonly used to encode free content (such as free music, multimedia on Wikimedia Foundation projects and Creative Commons files) and had started to be supported by a significant minority of digital audio players. Also supporting the Ogg format were many popular video game engines, including Doom 3 , Unreal Tournament 2004 , Halo: Combat Evolved , Jets'n'Guns , Mafia: The City of Lost Heaven , Myst IV: Revelation , StepMania , Serious Sam: The Second Encounter , Lineage 2 , Vendetta Online , Battlefield 2 , and the Grand Theft Auto engines, as well as the audio files of the Java-based game, Minecraft . The more popular Vorbis codec had built-in support on many software players, and extensions were available for nearly all the rest.
On May 16, 2007, the Free Software Foundation started a campaign to increase the use of Vorbis "as an ethically, legally and technically superior audio alternative to the proprietary MP3 format". [26] People were also encouraged to support the campaign by adding a web button to their website or blog. For those who did not want to download and use the FSF's suggested Ogg player (VLC), the Xiph.Org Foundation had an official codec [27] for QuickTime-based applications in Windows and Mac OS X, such as iTunes players and iMovie applications; and Windows users could install a Windows Media Player Ogg codec. [28]
By June 30, 2009, the Ogg container, through the use of the Theora and Vorbis, was the only container format included in Firefox 3.5 web browser's implementation of the HTML5 <video>
and <audio>
elements. [29] [30] This was in accordance with the original recommendation outlined in, but later removed from, the HTML5 draft specification (see Ogg controversy).
On March 3, 2010, a technical analysis by an FFmpeg developer was critical about the general purpose abilities of Ogg as a multimedia container format. [31] The author of Ogg later responded to these claims in an article of his own. [32]
Ogg is only a container format. The actual audio or video encoded by a codec is stored inside an Ogg container. Ogg containers may contain streams encoded with multiple codecs; for example, a video file with sound contains data encoded by both an audio codec and a video codec.
Being a container format, Ogg can embed audio and video in various formats [33] [34] (such as Dirac, MNG, CELT, MPEG-4, MP3 and others) but Ogg was intended to be, and usually is, used with the following Xiph.org free codecs:
Ogg audio media is registered as IANA media type audio/ogg with file extensions .oga, .ogg, and .spx . It is a proper subset of the Ogg video media type video/ogg with file extension .ogv. Other Ogg applications use media type application/ogg with file extension .ogx; this is a superset of video/ogg. [34] The Opus media type audio/opus with file extension .opus was registered later in RFC 7587 and 7845 .
An audio file format is a file format for storing digital audio data on a computer system. The bit layout of the audio data is called the audio coding format and can be uncompressed, or compressed to reduce the file size, often using lossy compression. The data can be a raw bitstream in an audio coding format, but it is usually embedded in a container format or an audio data format with defined storage layer.
Vorbis is a free and open-source software project headed by the Xiph.Org Foundation. The project produces an audio coding format and software reference encoder/decoder (codec) for lossy audio compression, libvorbis. Vorbis is most commonly used in conjunction with the Ogg container format and it is therefore often referred to as Ogg Vorbis.
FLAC is an audio coding format for lossless compression of digital audio, developed by the Xiph.Org Foundation, and is also the name of the free software project producing the FLAC tools, the reference software package that includes a codec implementation. Digital audio compressed by FLAC's algorithm can typically be reduced to between 50 and 70 percent of its original size and decompresses to an identical copy of the original audio data.
Theora is a free lossy video compression format. It was 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.
The Xiph.Org Foundation is a nonprofit organization that produces free multimedia formats and software tools. It focuses on the Ogg family of formats, the most successful of which has been Vorbis, an open and freely licensed audio format and codec designed to compete with the patented WMA, MP3 and AAC. As of 2013, development work was focused on Daala, an open and patent-free video format and codec designed to compete with VP9 and the patented High Efficiency Video Coding.
On2 TrueMotion VP3 is a (royalty-free) lossy video compression format and video codec. It is an incarnation of the TrueMotion video codec, a series of video codecs developed by On2 Technologies.
Musepack or MPC is an open source lossy audio codec, specifically optimized for transparent compression of stereo audio at bitrates of 160–180 kbit/s. It was formerly known as MPEGplus, MPEG+ or MP+.
A container format or metafile is a file format that allows multiple data streams to be embedded into a single file, usually along with metadata for identifying and further detailing those streams. Notable examples of container formats include archive files and formats used for multimedia playback. Among the earliest cross-platform container formats were Distinguished Encoding Rules and the 1985 Interchange File Format.
These tables compare features of multimedia container formats, most often used for storing or streaming digital video or digital audio content. To see which multimedia players support which container format, look at comparison of media players.
Christopher "Monty" Montgomery is an American programmer and engineer. He is the original creator of the Ogg Free Software container format and the Vorbis audio codec and others, and the founder of The Xiph.Org Foundation, which promotes public domain multimedia codecs. He uses xiphmont as an online pseudonym.
A Vorbis comment is a metadata container used in the Ogg file format. It allows information such as the title, artist, album, track number or other information about the file to be added to the file itself. However, as the official Ogg Vorbis documentation notes, “[the comment header] is meant for short, text comments, not arbitrary metadata; arbitrary metadata belongs in a separate logical bitstream that provides greater structure and machine parseability.” Instead, the intended function of Vorbis comments is to approximate the kind of information that might be hand-inked onto a blank faced CD-R or CD-RW: a few lines of notes briefly detailing the content.
OggSquish is one of the first names used for the Ogg project developed from 1994 by the Xiphophorus company. Ogg Squish was also an attempt from the Xiphophorus company to create a royalty-free lossless audio compression codec.
K-Multimedia Player is an Adware-supported media player for Windows, android and iOS that can play most current audio and video formats, including VCD, DVD, AVI, MP4, MPG, DAT, OGM, VOB, MKV, Ogg, OGM, 3GP, MPEG-1/2/4, AAC, WMA 7/8, WMV, RealMedia, FLV, and QuickTime.
A demultiplexer for digital media files, or media demultiplexer, also called a file splitter by laymen or consumer software providers, is software that demultiplexes individual elementary streams of a media file, e.g., audio, video, or subtitles and sends them to their respective decoders for actual decoding. Media demultiplexers are not decoders themselves, but are format container handlers that separate media streams from a (container) file and supply them to their respective audio, video, or subtitles decoders.
Constrained Energy Lapped Transform (CELT) is an open, royalty-free lossy audio compression format and a free software codec with especially low algorithmic delay for use in low-latency audio communication. The algorithms are openly documented and may be used free of software patent restrictions. Development of the format was maintained by the Xiph.Org Foundation and later coordinated by the Opus working group of the Internet Engineering Task Force (IETF).
The HTML5 draft specification adds video
and audio
elements for embedding video and audio in HTML documents. The specification had formerly recommended support for playback of Theora video and Vorbis audio encapsulated in Ogg containers to provide for easier distribution of audio and video over the internet by using open standards, but the recommendation was soon after dropped.
Opus is a lossy audio coding format developed by the Xiph.Org Foundation and standardized by the Internet Engineering Task Force, designed to efficiently code speech and general audio in a single format, while remaining low-latency enough for real-time interactive communication and low-complexity enough for low-end embedded processors. Opus replaces both Vorbis and Speex for new applications, and several blind listening tests have ranked it higher-quality than any other standard audio format at any given bitrate until transparency is reached, including MP3, AAC, and HE-AAC.
HTML audio is a subject of the HTML specification, incorporating audio input, playback, and synthesis, as well as speech to text, all in the browser.
3.3 Ogging: This is the art of killing a carrier, or potential carrier, by a suicide run.
This library was never released and now looks like it needs to be redesigned.
{{cite web}}
: CS1 maint: unfit URL (link)