[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme_kompilieren: Programme aus dem Quellcode erstellen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(opus-logo.png, 112, align=left)]] [http://opus-codec.org/ Opus] {en} ist ein junges Audio-Format, das eine Vielzahl nützlicher Eigenschaften in sich vereint. Ähnlich [:LAME:MP3] oder [:Vorbis:] verkleinert ein Opus-Codec Audiodaten mittels [wikipedia:Audiodatenkompression#Verlustbehaftete_Audiodatenkompression:verlustbehafteter Reduktion] anhand eines [wikipedia:Audiodatenkompression#Psychoakustik: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 [wikipedia: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 heißt das, man erhält bei gleicher Qualität nur halb so große Dateien. = Funktionsübersicht = [[Vorlage(Bildunterschrift, ./opus-quality.png, 320, "Opus im Vergleich mit anderen Audio-Codecs ([http://opus-codec.org/comparison/ Bildquelle] {en})", right)]] Während die technischen Details einem [wikipedia:Opus_(Audioformat):Wikipedia-Artikel] und der Projektseite zu entnehmen sind, zeigt die folgende Liste die für den Benutzer sichtbaren Vor- und Nachteile: * Pro: * nur noch ein Codec für Musik und Sprache notwendig * hohe bis sehr hohe Klangqualität im Vergleich mit anderen Formaten/Codecs * streamingfähig * Einbetten von [:Metadaten:] * Unterstützung von [wikipedia:Cuesheet:Cuesheets] und [wikipedia:Replay_Gain:Replay Gain] * Abspielen auch von beschädigten Dateien und Datenströmen durch Fehlerkorrektur * lizenzkostenfrei * Contra: * Konvertierung in andere verlustbehaftete Formate birgt [wikipedia:Generationsverlust:] * fast keine Unterstützung durch Hardware-Player (Ausnahme: die offene Firmware [wikipedia:Rockbox:]) Das Format und der Referenz-Codec beherrschen sowohl Datenströme mit unbeschränkt oder nach bestimmten Vorgaben beschränkt variabler [wikipedia:Bitrate:] (VBR, Standard bei Opus) als auch mit fester, konstanter Bitrate (CBR). = Installation = Die Unterstützung für das Format kann aus den offiziellen Paketquellen installiert [1] werden: {{{#!vorlage Paketinstallation libopus0, Referenz-Codec opus-tools, siehe [#Kommandozeilenwerkzeuge Kommandozeilenwerkzeuge] }}} = 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 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 == * Mit dem [:VLC:] Media Player kann das Format ab Version 2.0.4 ohne weiteres abgespielt werden * Beim ersten Abspielversuch werden weitere Pakete benötigt, deren automatische Installation gleich angeboten wird: * [:Banshee:] * [:Rhythmbox:] * [:Totem:] * [:Firefox:] kann ab Version 15 in Webseiten eingebettete Opus-Dateien und -Streams wiedergeben ([https://www.opus-codec.org/examples/#example-of-use-in-a-web-page Beispiel] {en}) == Erzeugung == * [:Soundconverter:] zum bequemen Umwandeln: Ab Version 2.0.4 bzw. [:Raring: Ubuntu 13.04] kennt das Programm nach der Installation von [packages:gstreamer0.10-plugins-bad:] in Version 0.10.23 oder neuer Opus. * [:Rubyripper:] zum direkten Rippen von Audio-CDs. Mit Rubyripper kann man beliebige Kommandozeilen-Kodierer verwenden. Für eine englischsprachige Schritt-für-Schritt-Anleitung zur Nutzung mit Opus siehe [http://wiki.hydrogenaudio.org/?title=Rubyripper_and_OggOpus Rubyripper and OggOpus] {en}. * [:Audacity:] kann Opus-Dateien mit externen Kodieren erzeugen; dazu zum Abspeichern eine der diversen Exportier-Optionen im ''"Datei"''-Reiter verwenden. Dort als Format ''"(externes Programm)"'' wählen, als ''"Befehl"'' verwendet werden können; in aktueller Versionen auch schon intern vorgesehen. * {{{opusenc --bitrate 128 - "%f".opus}}} - es können auch weitere opusenc-Optionen aufgeführt werden (siehe unten, oder auch in der [:Manpage:] zu opusenc) * {{{ffmpeg -i - -c:a libopus -b:a 128k "%f".opus}}} - liefert ähnliche Ergebnisse, hier wird der Umweg über [:FFmpeg:] genommen, das funktioniert allerdings nur mit FFmpeg-Versionen, die mit der Option `--enable-libopus` konfiguriert wurden. * Der einzelne Bindestrich '-' ist wichtig, er steht für die Eingabedatei, die Audacity liefert, `"%f"` ist der Platzhalter für die Ausgabe-Datei mit Pfad, die in Audacity unter ''"Ordner"'' angegeben wird. == Audio-CDs erstellen == * [:Brasero:] * [:Xfburn:] == 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 [: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 [:Shell/Umleitungen:Pipes] mit mehreren hintereinandergeschalteten Programmen oder auch geskriptet verarbeitet werden. === opusenc === Folgender Befehl wandelt PCM-Daten in Opus um: {{{#!vorlage Befehl opusenc [OPTIONEN] EINGABE AUSGABE }}} Es können ausschließlich [wikipedia:RIFF WAVE:WAVE], [wikipedia:Audio Interchange File Format:AIFF], [:FLAC:] und [wikipedia:Puls-Code-Modulation: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): {{{#!vorlage Befehl opusenc DATEI.wav DATEI.opus }}} * Festlegen der Bitrate auf 128 kbps: {{{#!vorlage Befehl opusenc --bitrate 128 DATEI.flac DATEI.opus }}} * Eine konstante (CBR) statt einer variablen Bitrate (VBR) verwenden: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl for j in *.flac; do opusenc --bitrate 160 "$j" "${j%.*}-(VBR-160).opus"; done }}} * Eine WavPack-Datei umwandeln: {{{#!vorlage Befehl 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 [:Vorbis:Ogg/Vorbis]. Beispiele: ||<-2 rowclass="titel"> 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 [:man: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: {{{#!vorlage Befehl opusdec DATEI.opus }}} Eine Konvertierung erfolgt durch Angabe eines Dateinamens: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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 }}} = Links = * [http://opus-codec.org/ offizielle Webpräsenz] {en} * [http://www.opus-codec.org/examples/ Hörbeispiele] {en} {dl} - in verschiedenen Bitraten * [wikipedia:Opus (Audioformat):Opus] - Wikipedia * [http://www.linux-community.de/Internal/Artikel/Print-Artikel/LinuxUser/2013/05/Audio-Codec-Opus-Einer-fuer-Alle-s Tonmeister - Audio-Codec Opus: einer für alle(s)] {de} - LinuxUser Community Edition, 05/2013 #tag: Multimedia, Audio, Shell