Ogg
# Ogg

Ogg ist ein Container-Dateiformat für Multimedia-Dateien, kann also gleichzeitig Audio-, Video- sowie Textdaten enthalten. Ogg wurde mit dem Ziel konzipiert, eine freie und von Softwarepatenten unbeschränkte Alternative zu proprietären Formaten zu bieten, um Multimedia-Inhalte effizient zu speichern und zu streamen. Die Streamingfähigkeit ist dabei das entscheidende Designmerkmal: Alles, was in einem Ogg-Container verpackt ist, kann ohne zusätzliche Anpassungen gestreamt werden. Dies unterscheidet Ogg von Formaten, die entweder nur in bestimmten Ausprägungen streamingfähig sind (wie z. B. Matroska) oder überhaupt nicht live-streaming-fähig sind (wie z. B. MP4). Ogg-Streams können dabei gebündelt und verkettet werden, ohne dass dazu eine Anpassung des einzelnen Streams notwendig ist.

Die Entwicklung des Container-Formats wird von der Xiph.Org Foundation geleitet, die auch für einige Codecs verantwortlich ist, welche die Inhalte in einem Ogg-Container komprimieren.

Der bekannteste Codec ist dabei der Audio-Codec Vorbis, welcher oft vereinfachend (oder auch irrtümlich) als Ogg bezeichnet wird, obwohl Ogg tatsächlich nur das Containerformat für die Vorbis-kodierten Inhalte ist. Seit 2012 setzt sich vermehrt auch das Vorbis-Nachfolgeformat Opus durch, insbesondere auch im professionellen Broadcast-Umfeld in Hardware-Audio-Codecs.

## Geschichte

Die Entwicklung des Containerformats begann 1993 unter dem Namen „Squish“, der allerdings Markenrechte verletzte. Daher wurde der Name durch einen Ausdruck aus dem Computerspiel Netrek ersetzt, der so viel bedeutet wie to ogg: „to do anything forcefully, possibly without consideration of the drain on future resources“ (etwa: „etwas sehr energisch angehen, möglicherweise ohne Rücksicht auf die Belastung zukünftiger Ressourcen“).

Im Herbst 1998 begann Christopher Montgomery mit der Entwicklung des Audio-Codecs Vorbis, nachdem die Fraunhofer-Gesellschaft begonnen hatte, Lizenzgebühren für ihr populäres MP3-Format durchzusetzen. Durch die zunehmende Verbreitung von Vorbis erfuhr das Containerformat Ogg einen Aufschwung. Am 12. Juli 2002 wurde Ogg in der Version 1.0 freigegeben, die als erste stabile Version auch für Endanwender gedacht war. Im Mai 2003 folgte die Definition durch RFCs: RFC 3533 definiert den verkapselnden Datenstrom, während RFC 3534 den Internet Media Type von Ogg-Dateien – application/ogg – definiert.

Im September 2008 wurde RFC 3534 durch RFC 5334 ersetzt. Dabei wurden der Internet Media Type application/ogg neu definiert und die Internet Media Types audio/ogg für Audiodaten und video/ogg für Videodaten ergänzt. Als Dateinamenserweiterungen wurden .ogx für application/ogg, .ogv für video/ogg und .oga, .ogg und .spx für audio/ogg festgelegt. Der selten noch gebrauchte Medientyp application/x-ogg hingegen stammt aus früherer Zeit, als der offizielle Typ noch nicht spezifiziert war. Nicht Teil der Ogg-Spezifikationen ist die Endung .ogm, diese gehört zum Ogg-verwandten (aber nicht identischen) Format Ogg Media, das sich von Ogg abspaltete, um zusätzliche Videoabspielfunktionen zu unterstützen.

## Dateiformat

Das Ogg-Dateiformat ist ein Container-Bitstromformat. Der Container enthält Daten, die wiederum mit unterschiedlichen Codecs komprimiert sind. Bei der Komprimierung werden meist der Text-Codec Writ, der Sprachdaten-Codec Speex, die Audio-Codecs Vorbis oder FLAC sowie der Video-Codec Theora genutzt. Diese Daten werden dann, je nach ihrer Eigenschaft, in logische Bitströme (also Text, Audio, Videobild) gruppiert. Jeder logische Bitstrom wird dabei nur mit dem zu ihm passenden Codec weiterverarbeitet. In einem Container können mehrere logische Bitströme „eingelagert“ werden. Auch können mehrere logische Bitströme der gleichen Art (also z. B. drei logische Videoströme) in einem Container enthalten sein. Diese können sich bei Wiedergabe auch überlagern. Zur Speicherung oder Übertragung der Daten über das Netzwerk werden diese logischen Bitströme in einen physikalischen Bitstrom überführt (sogenannter Datenstrom). Dieser wird dann über das Netzwerk gesendet. Auf der Empfängerseite gewinnt ein Decoder aus diesem Datenstrom wieder die verschiedenen logischen Streams (also z. B. Text, Audio, Videobild) zurück.

## Codecs

Ogg ist ein Containerformat, das Video, Audio und andere Elemente beinhalten kann (beispielsweise Dirac, MNG, CELT, MPEG-4, MP3 und andere), aber Ogg wurde hauptsächlich für die freien Xiph.org-Codecs entworfen. Im Folgenden werden beispielhaft einige verwendbare Codecs aufgelistet:

* Audio
   * verlustbehaftet
      * Speex: Audiocodec für Sprache mit niedrigen Bitraten (~ 2.1–32 kbit/s pro Kanal)
      * Vorbis: behandelt Musik und Sprache für mittlere bis hohe Bitraten und auch mit variablen Bitraten (~ 16–500 kbit/s pro Kanal)
      * Opus: behandelt Sprache oder Musik mit niedriger oder hoher Bitrate (≈6–510 kbit/s pro Kanal)
   * verlustfrei
      * FLAC für verlustfrei komprimiertes Audio
   * unkomprimiert
      * OggPCM: unkomprimierte Musik oder Sprache in PCM-Audio, vergleichbar mit WAV
* Video
   * verlustbehaftet
      * Theora: basiert auf On2's VP3 und strebt eine hohe Kompatibilität mit MPEG-4-Video an (beispielsweise kodiert mit DivX oder Xvid, RealVideo oder Windows Media Video)
      * Daala: ein Videoformat, das nicht mehr aktiv weiterentwickelt wird
      * Tarkin: ein experimenteller und obsolet gewordener Videocodec, entwickelt von 2000 bis 2002; er wurde zugunsten von Theora im August 2002 fallen gelassen
      * Dirac: ein freier Video-Codec von BBC, benutzt Wavelet-Enkodierung
   * verlustfrei
      * Dirac: als Teil der Spezifikation für verlustfreie Videokompression in Dirac
      * Daala: der Codec wird nicht mehr aktiv weiterentwickelt
* Text
   * Writ: unvollständiger Entwurf, Entwicklung eingestellt im Jahre 2007;
   * Continuous Media Markup Language: ein Textcodec für zeitgesteuerte Metadaten, Überschriften, und Formatierung;
   * Annodex: ein freier Codec für Fußnoten und Indexierung;
   * OggKate: ein Codec für Untertitel, das für Karaoke und Text geeignet ist; kann in Ogg multiplexed werden.

## Verbreitung

### Audio

Ogg hat sich im IT-Bereich mittlerweile etabliert, im Audio-Bereich wird Ogg Vorbis von vielen Soft- und Hardwareprodukten unterstützt. Der große Durchbruch im Privatgebrauch blieb bisher aus, allerdings wird es aufgrund der Lizenzfreiheit in den meisten Browsern (mit Ausnahme von Apples Safari) in vielen Web-Audioplayern verwendet.

In diesem Bereich, aber auch im professionellen Studioumfeld, setzt sich mittlerweile auch das Vorbis-Nachfolgeformat Opus immer mehr durch. Es bietet gegenüber Vorbis eine weitaus höhere Qualität und funktioniert aufgrund seiner Hybridarchitektur (zwei Codec-Technologien in einem Codec) sowohl für niedrige Bitraten (Sprache) als auch für höhere Bitraten.

### Video

Im Video-Bereich ist Ogg Theora außerhalb der Open-Source-Szene nicht verbreitet. Ogg-Versionen gibt es beispielsweise zu den Kurzfilmen Big Buck Bunny (2008) und Sintel (2010). Beide Filme wurden ausschließlich mit freier Software erstellt und stehen unter der Creative-Commons-Namensnennungs-Lizenz (CC-BY).

Für HD-Videos setzt sich das ebenfalls freie Containerformat Matroska außerhalb der Open-Source-Szene durch.

## Markenrechtliches

Die Bezeichnung Ogg war ab dem Jahr 2001 eine Zeit lang als Marke eingetragen. In dieser Zeit konnte eine Firma mit Sitz in London diese Marke laut eigenen Angaben mittelfristig für Abmahnungen nutzen; wer also die Bezeichnung Ogg beispielsweise auf einer Homepage verwendete, wurde gegebenenfalls per Abmahnung zu hohen Geldzahlungen aufgefordert. Diese Art der Markenführung verstieß jedoch schon immer gegen deutsches Markenrecht, hatte also keine rechtliche Relevanz. Am 31. Dezember 2011 endete die Schutzdauer, die Marke wurde nicht verlängert und ist somit erloschen.

## Kritik

Ein FFmpeg-Entwickler schätzte im März 2010 die Qualitäten von Ogg als Containerformat kritisch ein. Unter anderem führt er an, dass der Dateigrößen-Overhead mit 1 % im Vergleich zum ISO-MP4-Format mindestens achtmal größer sei und auch dass Ogg nicht geeignet sei für Anwendungen, die kurze Latenzzeiten benötigen. Als Alternative mit diesbezüglich angeblich besseren Eigenschaften empfiehlt er das Containerformat Matroska.

Der Ogg-Entwickler bezeichnete dessen Behauptungen allerdings als zum größten Teil unsachlich und falsch. Unter anderem seien MP4 und Matroska genauso wenig für Anwendungen mit kurzen Latenzen geeignet wie Ogg, insbesondere, weil der MP4-Container überhaupt nicht live streambar sei, und um die sonstigen Stream-Eigenschaften von Ogg zu erreichen, müsse man einen prinzipbedingt höheren Anteil an Verwaltungsdaten hinnehmen. Wenn Matroska gestreamt werden solle, erhöhe sich dort der Anteil sogar über den des Ogg-Containers. Im Allgemeinen warf er dem Kritiker vor, für jede Einzeleigenschaft jeweils einen bestimmten anderen Container zum Vergleich herauszupicken und dabei zu vergessen, dass jeder Container für bestimmte Einsatzzwecke angepasst sein müsse und dafür zwangsweise in anderen Fällen nur suboptimal sein könne.

