Opus

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

  2. Programme aus dem Quellcode erstellen

  3. Ein Terminal öffnen

Inhaltsverzeichnis
  1. Funktionsübersicht
  2. Installation
  3. Nutzung
  4. Links

opus-logo.png Opus 🇬🇧 ist ein junges Audio-Format, das eine Vielzahl nützlicher Eigenschaften in sich vereint. Ähnlich MP3 oder Vorbis verkleinert ein Opus-Codec Audiodaten mittels verlustbehafteter Reduktion anhand eines psychoakustischen Modells. Der Referenz-Codec ist anderen älteren Codecs meist deutlich überlegen. Insbesondere bei Bitraten oberhalb von etwa 15 Kilobits pro Sekunde (kbit/s oder kbps) werden bessere Ergebnisse erzielt. Weiterhin ist ein auf menschliche Sprache spezialisierter Modus integriert. Das Format ist seit Sommer 2012 ein von der Internet Engineering Task Force (IETF) abgesegneter, weltweiter Standard zur Audiokodierung im Internet.

Zur ersten groben Abschätzung der Klangqualität: Bei etwa 96 kbit/s durchschnittlicher Bitrate kann man mit den 1.0.x-Versionen des Referenzkodierers bis auf mehr oder weniger seltene Problemsituationen klanglich transparente Audiodateien erzeugen, für die beispielsweise mit dem älteren Format MP3 eine Bitrate von 160 kbit/s oder mehr notwendig ist. Praktisch heisst das, man erhält bei gleicher Qualität nur halb so große Dateien.

Funktionsübersicht

./opus-quality.png
Opus im Vergleich mit anderen Audio-Codecs (Bildquelle 🇬🇧)

Während die technischen Details einem Wikipedia-Artikel und der Projektseite zu entnehmen sind, zeigt die folgende Liste die für den Benutzer sichtbaren Vor- und Nachteile:

Das Format und der Referenz-Codec beherrschen sowohl Datenströme mit unbeschränkt oder nach bestimmten Vorgaben beschränkt variabler Bitrate (VBR, Standard bei Opus) als auch mit fester, konstanter Bitrate (CBR).

Installation

Die Unterstützung für das noch junge Format kann aus den offiziellen Paketquellen installiert [1] werden:

Paketliste zum Kopieren:

sudo apt-get install libopus0 opus-tools 

Oder mit apturl die Pakete installieren. Link: apt://libopus0,opus-tools

Nutzung

In der Praxis hängt die Nutzung von der Unterstützung durch Multimedia-Programme ab. Am einfachsten ist diese, wenn die Einbindung über Kommandozeilenwerkzeuge möglich ist. Die zweite Variante ist die Nutzung über das Multimedia-Framework GStreamer. Auch eine dritte Möglichkeit ist vorhanden: manche Programme wie Firefox enthalten eigene Routinen zum Abspielen und sind so unabhängig von den ersten beiden Varianten.

Wiedergabe

Erzeugung

Audio-CDs erstellen

Metadaten

Verschiedene Spezialprogramme erlauben massenhaftes Bearbeiten von Metadaten in Opus-Dateien. Teils sind entsprechende Programmversionen noch zu neu, um bereits ihren Weg in die offiziellen Ubuntu-Paketquellen gefunden zu haben und finden sich dann zum Beispiel auf Launchpad. Darunter sind Puddletag (ab Version 1.0.2 vom 7. November 2013), EasyTAG (ab Version 2.1), Ex Falso und Kid3 (ab Version 3 vom 23. Oktober 2013) bzw. entsprechende Backend-Bibliotheken wie mutagen (ab Version 0.21).

opusenc übernimmt beim Transkodieren Metadaten aus FLAC-Dateien.

Kommandozeilenwerkzeuge

Die opus-tools sind ein Paket mit nützlichen Kommandozeilenwerkzeugen [3] zum Umgang mit Opus-Dateien und -Datenströmen. Nach der Installation stehen die Einzelanwendungen opusenc, opusdec und opusinfo zur Verfügung. Nun können Audiodaten nach Herzenslust hin- und herkonvertiert, in sogenannten Pipes mit mehreren hintereinandergeschalteten Programmen oder auch geskriptet verarbeitet werden.

opusenc

Folgender Befehl wandelt PCM-Daten in Opus um:

opusenc [OPTIONEN] EINGABE AUSGABE 

Es können ausschließlich WAVE, AIFF, FLAC und PCM-Rohdaten verarbeitet werden. Für Ein- und Ausgabe können Dateien oder Standard-Datenströme (gekennzeichnet durch ein -) genutzt werden. Die wichtigste Option ist wahrscheinlich die Angabe einer Bitrate. Beispiele:

  • Die einfachste Variante (mit einer Bitrate von 96 kbps):

    opusenc DATEI.wav DATEI.opus 
  • Festlegen der Bitrate auf 128 kbps:

    opusenc --bitrate 128 DATEI.flac DATEI.opus 
  • Eine konstante (CBR) statt einer variablen Bitrate (VBR) verwenden:

    opusenc --hard-cbr --bitrate 160 DATEI.wav DATEI.opus 
  • Alle Dateien in einem Ordner von Titel-nn.flac nach Titel-nn.opus mit VBR und 160 kbps umwandeln:

    for j in *.flac; do opusenc --bitrate 160 "$j" "${j%.*}-(VBR-160).opus"; done 
  • Eine WavPack-Datei umwandeln:

    wvunpack DATEI.wv -o - | opusenc - DATEI.opus 

Neben diesen Parametern zur Konvertierung können auch Metadaten in Opus-Dateien geschrieben werden. Grundlage bilden die Metadaten-Spezifikationen von Ogg/Vorbis. Beispiele:

Metadaten hinzufügen
Option Zweck
--artist NAME Künstlername oder Gruppe
--title TITEL Songtitel
--album NAME Albumname
--genre GENRE Musikrichtung

Weitere Informationen sind – wie auch bei den nachfolgenden Programmen – der jeweiligen Manpage zu entnehmen.

opusdec

Das Gegenstück opusdec wandelt Opus in PCM-Daten. Bedienung und Ein-/Ausgabe-Möglichkeiten sind im Grunde analog, wobei die Ausgabe in der Standardeinstellung an die Soundkarte geleitet wird. Daher spielt der folgende Befehl die jeweils angegebene Datei ab:

opusdec DATEI.opus 

Eine Konvertierung erfolgt durch Angabe eines Dateinamens:

opusdec DATEI.opus DATEI.wav 

opusinfo

opusinfo gibt zu einer oder auch mehreren Opus-Dateien technische und statistische Informationen aus und prüft auf fehlerhafte Datenströme. Beispiel:

opusinfo DATEI.opus 

Ausgabe:

Processing file "DATEI.opus"...

New logical stream (#1, serial: 2e2d7d65): type opus
Encoded with libopus 1.0.1
User comments section follows...
        ENCODER=opusenc from opus-tools 0.1.5
Opus stream 1:
        Pre-skip: 356
        Playback gain: 0 dB
        Channels: 2
        Original sample rate: 44100Hz
        Packet duration:   20.0ms (max),   20.0ms (avg),   20.0ms (min)
        Page duration:   1000.0ms (max),  999.9ms (avg),  980.0ms (min)
        Total data length: 4515795 bytes (overhead: 0.679%)
        Playback length: 6m:27.970s
        Average bitrate: 93.12 kb/s, w/o overhead: 92.48 kb/s
Logical stream 1 ended