====== Podcasts von MP3 und Vorbis in OPUS transkodieren ====== Podcasts werden derzeit häufig im MP3-Format in Stereo mit 128-192 kbit/s ausgeliefert (etwas seltener findet man auch das datensparsamere OGG/Vorbis Format). Bei Podcasts kann(!) jedoch ein datensparsameres Mono-Signal ausreichen - und [[https://opus-codec.org/comparison/|Opus ist (als Nachfolger von OGG/Vorbis) zur Zeit der effizienteste Codec]] in Bezug die Bandbreite und Speicherbedarf bei gleichbleibender Qualität. Da jedoch kaum Podcasts mit (zusätzlichen) Opus-Feeds angeboten werden (obwohl dies mit Auphonic sehr einfach möglich wäre), befasst sich dieser Beitrag mit der Transkodierung von MP3/Vorbis zu Opus (mono) unter Linux. Insbesondere jene Podcasts, welche man nicht nur einmalig hören (sondern dauerhaft archivieren) möchte, können auf diese Art Speicherplatz-schonend gesichert werden. ===== Podcatcher ===== Als Podcatcher werden in diesem Beispiel die Podcatcher "Rhythmbox" und "gPodder" behandelt; andere Podcatcher können aber ähnlich angepasst werden. Über Empfehlungen zu einem CLI-Podcatcher wäre ich sehr dankbar! ;-) ===== Werkzeuge (Tools) ===== Zum Transkodieren von MP3 und Vorbis zu Opus benötigt man MP3- und Vorbis-**De**koder, sowie den Opus-**EN**koder. sudo apt update && sudo apt install --yes lame vorbis-tools opus-tools # Falls noch nicht installiert: "rhythmbox" oder "gpodder" als Podcatcher ergänzen ===== Verzeichnisse und Dateien ===== In diesem Beispiel wird zunächst ein Verzeichnis für neue Podcasts angelegt: mkdir -p ~/Audio/Podcasts Der Podcatcher wird anschließend so konfiguriert, dass eben dieses Verzeichnis für den Download neuer Episoden genutzt wird. Der Podcatcher erstellt dabei für jeden Podcast-Feed einen eigenen Unterordner. ==== Downloadpfad in Rhythmbox ändern ==== Menüleiste -> Bearbeiten -> Einstellungen -> Reiter "Podcasts" -> Speicherort ==== Downloadpfad in gPodder ändern ==== Das Ändern des Speicherorts für heruntergeladene Episoden in gPodder erfolgt (leider etwas umständlich) über die Umgebungsvariable "GPODDER_DOWNLOAD_DIR" ([[https://gpodder.github.io/docs/user-manual.html#changing-the-downloads-folder-location-and-the-gpodder-home-folder|Quelle]]). In einer laufenden Sitzung kann gPodder direkt mit der entsprechenden Umgebungsvariable aufgerufen werden: GPODDER_DOWNLOAD_DIR=$HOME/Audio/Podcasts gpodder Für dauerhafte Verwendung der Umgebungsvariable nach jeder Anmeldung kann die ''~/.profile''-Datei entsprechend ergänzt werden: echo "export GPODDER_DOWNLOAD_DIR=$HOME/Audio/Podcasts" >> ~/.profile **Hinweis:** Die zweite Methode greift erst nach der nächste Anmeldung - also NICHT in der laufenden Sitzung! ==== Dateinamen in gPodder ändern ==== Das Umbenennen der Originaldateien (Dateinamen = Episodentitel) kann in gPodder wie folgt eingerichtet werden: //Menüleiste -> gPodder -> Einstellungen -> Erweiterungen -> "Episoden nach dem Download umbenennen" -> aktivieren// ===== Skripte ===== Die Umwandlung selbst erfolgt durch Bash-Skripte, welche zunächst erstellt werden müssen: **HINWEIS**: Wenn man auf das Stereo-Signal nicht verzichten möchte, lässt man in den nachfolgenden Beispielen das ''%%--downmix-mono%%'' weg und erhöht die Bitrate auf 36 kbit/s (''%%--bitrate 36%%''). Weitere empfohlene Einstellungen findet man hier: https://wiki.xiph.org/index.php?title=Opus_Recommended_Settings cat <<-"EOF" > ~/transcode_mp3_podcast.sh #! /usr/bin/env bash lame --decode "$1" - | opusenc --downmix-mono --bitrate 24 - "${1%.[Mm][Pp]3}".opus && rm "$1" EOF cat <<-"EOF" > ~/transcode_vorbis_podcast.sh #! /usr/bin/env bash oggdec "$1" --output - | opusenc --downmix-mono --bitrate 24 - "${1%.[Oo][Gg][GgAa]}".opus && rm "$1" EOF Anschließend müssen die Skripte noch ausführbar gemacht werden: chmod +x ~/transcode_*_podcast.sh ===== rekursives Umwandeln ===== Um nun rekursiv alle Podcast-Episoden zu transkodieren, eignet sich ''find'': find ~/Audio/Podcasts -type f -name *.[Mm][Pp]3 -exec ~/transcode_mp3_podcast.sh {} \; find ~/Audio/Podcasts -type f -name *.[Oo][Gg][GgAa] -exec ~/transcode_vorbis_podcast.sh {} \; Das war's! Die Umwandlung benötigt zwar etwas Zeit, dafür ist das eingesparte Datenvolumen aber (prozentual) enorm. Würden doch nur alle Podcasterinnen und Podcaster direkt in Opus, mono, 24kbit kodierte Dateien ausliefern... ;) ===== Video-Podcasts ===== Mit dem CLI-Tool ''youtube-dl'' lassen sich auch Audiodateien im Opus-Format aus Video-Podcasts extrahieren: youtube-dl --quiet --extract-audio --audio-format opus --audio-quality 0 --output "%(title)s.%(ext)s" $download_url ===== ToDos ===== - Die Übernahme der Metadaten aus dem RSS-Feed in die Opus-Dateien. Hierbei könnte ich Unterstützung gebrauchen! - Das (optionale) verschieben der fertigen Dateien auf einen Netzwerkspeicher (NAS/Cloud) nach der Umwandlung (z.B. mittels ''rsync'' oder SFTP). - Das Umwandeln von MP4/M4A-Dateien in Opus ===== Quellen ===== * https://opus-codec.org/ * [[https://de.wikipedia.org/wiki/Opus_(Audioformat)|Wikipedia zum Audioformat Opus]] {{tag>Podcast MP3 Vorbis Opus Audio Codec}}