MP3 aus Audiospur einer .ts (Transportstream) Datei erstellen

Ich nehme mir häufiger mal mit meinem Festplattenrekorder Sendungen aus dem Radio aus. Der Festplattenrekorder spuckt hierbei eine Datei mit der Endung .ts aus, welche ein Container-Format ist und jeweils eine Video- und eine Audio-Spur enthält von dem was aufgenommen wurde.

Gefühlt, solange ich schon openSUSE benutze (was recht lange ist), funktionierte es nie reibungslos, einfach mal eben schnell die Audio-Spur aus einer .ts Datei zu extrahieren und zu MP3 zu konvertieren. Während das bei Systemen wie Ubuntu und Debian recht reibungslos funktioniert, musste man bei openSUSE immer x-verschiedene Bibliotheken installieren und wenn man Glück hatte, konnte das System mit der .ts Datei umgehen und die mit entsprechenden ffmpeg, mencoder oder was weiß ich Kommandos konvertieren.

Aktuell nutze ich nun openSUSE Leap in Version 42.1 und stehe vor dem Problem, dass das mit den diversen Befehlen die man so im Internet findet, gar nicht mehr funktioniert. Verschiedenste Bibliotheken aus verschiedenen Repositorys ausprobiert, aber ohne Erfolg. Nach etwas herumprobieren habe ich mir dann einen Befehl zusammengebastelt, der die Aufgabe zuverlässig erledigt hat, wenn auch ohne Fortschrittsausgabe wie es angenehmer wäre:

mplayer input.ts -dumpaudio -dumpfile /dev/fd/3 2>&1 1>&2 | lame --mp2input -h - output.mp3

mplayer sollte normalerweise Problemlos mit den .ts Dateien umgehen können und lame ist eigens für das MP3 Encoding zuständig, sollte also auch keine Probleme bereiten.

Was genau passiert hier? Mplayer extrahiert den Audiostream der wiederrum auf stdout umgelenkt wird, die Ausgabe wird an Lame umgeleitet und die wird dann in MP3 encodiert. Da die Audiospur in .ts Dateien in MPEG2 encodiert ist, wird Lame via Parameter mitgeteilt, dass die Daten via stdin sich im MPEG2 Format befinden.

Das könnte Dich auch interessieren...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.