Wenn Sie generell viele Podcasts, Vorträge oder Hörbücher anhören und Sie möchten so viel davon unterwegs dabei haben wie Sie können, dann ist der Opus Audio Codec etwas was Sie interessieren könnte. Ich verwende selten diesen Begriff, aber hier kann er angewendet werden: die Ergebnisse raubten mir den Verstand. Es ist erstaunlich wieviel Audio Sie auf ein mobiles Gerät mit extremen Kapazitätsgrenzen packen können.
Ich habe gerade das:
none 162 Files mp3, 44100 Hz, mono, s16p, 129 kb/s Total Length: 6d 14h 47min 49 Total Size: 9.05 GB
von 9.05 GB
auf 555 MB
konvertiert und bin mit den Ergebnissen zufrieden.
Bitte beachten Sie, dass es sich dabei um eine Konvertierung von mp3 als Ausgangsmaterial handelt. Ja, das ist richtig, es ging von 128k
mp3 zu 6k
Opus, eine Woche Audio wurde auf ein halbes Gigabyte reduziert, und es wurde dabei aus einer ungünstigen Quelle konvertiert. Obwohl dies meine persönliche Hardcore-Einstellung ist, in meinen Recherchen fand ich heraus, dass man mit 16k
fast nichts falsch machen kann, egal wie schlecht die Quelle ist.
Was ist Opus?
Nach ihren eigenen Worten: > Opus ist ein völlig offener, lizenzfreier, vielseitiger Audio-Codec. Opus ist unübertroffen für interaktive Sprach- und Musikübertragung über das Internet, ist aber auch für Speicherung und Streaming-Anwendungen gedacht. Es wurde von der Internet Engineering Task Force (IETF) als RFC 6716 standardisiert, welche die Technologie des Skype SILK-Codec und Xiph.Org CELT Codecs eingebaut hat.
https://www.opus-codec.orghttps://en.wikipedia.org/wiki/Opus_%28audio_format%29
Vergleichsdiagramm zwischen MP3, AAC und Opus
Länge | Unkomprimiert | Codec | Bitrate | Komprimiert | Faktor |
---|---|---|---|---|---|
24 h | 14.88 GB | MP3 | 128k | 1382.4 | 11 |
24 h | 14.88 GB | AAC HE | 64k | 691.2 MB | 22 |
24 h | 14.88 GB | Opus | 16k | 172.8 MB | 86 |
24 h | 14.88 GB | Opus | 6k | 64.8 MB | 233 |
7 d | 104 GB | MP3 | 128k | 9.7 GB | 11 |
7 d | 104 GB | AAC HE | 64k | 4.8 GB | 22 |
7 d | 104 GB | Opus | 16k | 1.2 GB | 86 |
7 d | 104 GB | Opus | 6k | 0.5 GB | 233 |
30 d | 446 GB | MP3 | 128k | 41.5 GB | 11 |
30 d | 446 GB | AAC HE | 64k | 20.7 GB | 22 |
30 d | 446 GB | Opus | 16k | 5.2 GB | 86 |
30 d | 446 GB | Opus | 6k | 1.9 GB | 233 |
365 d | 5.4 TB | MP3 | 128k | 504.6 GB | 11 |
365 d | 5.4 TB | AAC HE | 64k | 252.3 GB | 22 |
365 d | 5.4 TB | Opus | 16k | 63.1 GB | 86 |
365 d | 5.4 TB | Opus | 6k | 23.6 GB | 233 |
Bitraten Rechner
Bitrate | kbit/s |
Länge | s |
Dateigröße | MB |
Bitte beachten Sie, dass Opus VBR verwendet (es kann auf CBR umgestellt werden, was ich aber nach Begutachtung der Ergebnisse nicht empfehle). Daher ist die endgültige Dateigröße angenähert.
Der Konvertierungs Befehl
Man kann man mit 16k
fast nichts falsch machen. Nach meiner Erfahrung reslutieren sogar stark komprimierte, schlecht klingende Quellen in ähnlich guter Qualität.
bash ffmpeg -i <input.file> -acodec libopus -b:a 16k <output.opus>
Wenn die Quelldateien von höherer Qualität sind erhalten Sie immer noch beeindruckende Ergebnisse mit 6k
, dies ist übrigens die absolut minimale Einstellung die Opus anbietet, aber man kann auf jeden Fall die Auswirkungen die diese massive Kompression mit sich bringt hören.
Ich persönlich verwende die 6k Bitraten Einstellung, selbst wenn die Quelle von minderer Qualität ist, weil ich mehr auf engerem Raum mit weniger Qualität, als weniger mit höherer Qualität bevorzuge. Das ist die Entscheidung die man für sich selbst machen muss.
Dies ist die Hardcore-Einstellung, die ich benutze:
bash ffmpeg -i <input.file> -acodec libopus -b:a 6k -application voip output.opus
Konvertierungsoptionen
Standardmäßig sind die Optionen für libopus solide. Für den Zweck extremer Reduktion senken wir die Bitrate. Dann optimieren wir für Spracherkennung mit der Option application
für diesen speziellen Fall.
application (N.A.) Set intended application type. Valid options are listed below:
- voip -> Favor improved speech intelligibility.
- audio -> Favor faithfulness to the input (the default).
- lowdelay -> Restrict to only the lowest delay modes.
Mehrere Dateien gleichzeitig bearbeiten
bash for f in *; do ffmpeg -n -i "$f" -acodec libopus -b:a 16k -application voip "encoded_"${f}".opus"; done
Dieser Befehl durchläuft alle Dateien im aktuellen Verzeichnis und wandelt sie in das Opus-Format um. Die gerenderten Dateien werden im gleichen Verzeichnis mit demselben Namen wie die Originaldateien mit vorangestelltem encoded_
gespeichert. Der Opus-Codec arbeitet nur Single Threaded.
Beschleunigung mit Multithreading
Opus bietet keine Unterstützung für Multithreading und Encodierungen werden einem einzigen CPU Kern zugeordnet, aber Sie können die Encodierung mit den folgenden Bash Befehlen parallelisieren.
bash bash -c 'ffmpeg_pids=(); for f in *; do ffmpeg -n -i "$f" -acodec libopus -b:a 16k -application voip encoded_"${f}".opus & ffmpeg_pids+=("$!"); done; wait "${ffmpeg_pids[@]}"'
bash # -P8 indicates Number of threads (of 4 core i7 in this case) find . -name "*.mp3" -print0 | xargs -0 -P8 -n1 -I {} ffmpeg -i {} -acodec libopus {}.opus
Im ersten Befehl werden alle Dateien im aktuellen Verzeichnis gleichzeitig konvertiert. Und der zweite Befehl konvertiert so viele Threads wie zugewiesen werden, aber nicht mehr. Der zweite Befehl sollte besser sein wenn sich viele Dateien im aktuellen Verzeichnis befinden.
Oder nutzen Sie Gnu Parallel.
Opus Media-Player für iOS
Zumindest VLC kann es.
Abschließende Bemerkungen
Ich weiß, eine Menge Leute werden mit mir wegen der 6k
Einstellung nicht einverstanden sein. In diesem Fall verwenden Sie bitte einfach 16k
.
System-Setup verwendete Werkzeuge:
- FFmpeg (3.2.2) mit libopus und libfdk-aac aktiviert