DVDs rippen

Problem

Ein Test diverser Programme zum Rippen von DVDs unter Kubuntu 18.04 verlief relativ desaströs. Die einfache Aufgabe, den Film ganz einfach auf die Festplatte zu kopieren, so dass er zum Abspielen im heimischen Netzwerk per dlna-Streaming verfügbar ist, scheint das Fassungsvermögen vieler Programmautoren zu übersteigen. Ich will den Film nicht rekodieren,

Ursache

Leider wird das Programm k9copy nicht mehr weiterentwickelt, zumindest ist es bei Ubunutu 18.04 nicht mehr im Repository zu finden. Und damit war es kinderleicht.

Lösung

Am Ende stellte sich heraus, dass es am einfachsten ist, den Film abzuspielen und aufzuzeichnen. Eine Aufgabe für dies sich Programme wie vlc oder mplayer eignen. Leider patzt bei dieser Aufgabe mein Lieblingsplayer vlc. Schon bei der ersten getesten DVD waren die Timestamps verhunzt. Die Abspiellänge wird falsch angezeigt und jede Form von Nachbearbeitung endet mit kaputtem Ton. mplayer eignet sich besser. Alles ganz easy:

mplayer dvd://1 -dumpstream -dumpfile test.mpg

Damit kopiert man den Track #1, der meist den eigentlichen Film beinhaltet in die Datei test.mpg.

That's all? Leider nein. Leider kopiert der Befehl alle Tonspuren mit. Sofern die erste Tonspur eine andere Sprache hat, als man gerne hätte, läuft der Film hinterher auf Englisch,Suaheli oder sonst was, aber nicht auf Deutsch. Mplayers Option -alang de sollte eigentlich die deutsche Tonspur selektieren, bleibt aber ohne Wirkung. Es werden immer noch alle Tonspuren kopiert.

An dieser Stelle kommt dann ffmpeg zu Ehren. Schauen sie sich erst einmal den Inhalt der Datei test.mpg an:

ffprobe -i test.mpg

Input #0, mpeg, from 'test.mpg':
  Duration: 00:34:52.66, start: 0.021644, bitrate: 20465 kb/s
    Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x84]: Audio: ac3, 48000 Hz, stereo, fltp, 96 kb/s
    Stream #0:2[0x80]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
    Stream #0:3[0x83]: Audio: ac3, 48000 Hz, stereo, fltp, 96 kb/s
    Stream #0:4[0x8a]: Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 768 kb/s
    Stream #0:5[0x81]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
    Stream #0:6[0x24]: Subtitle: dvd_subtitle

Im konkreten Fall beinhaltete Stream 0:0 den Film und 0:4 den deutschen Ton im DTS Format. Theoretisch sollte man das ganze mit ffmpeg wie folgt lösen können:

ffmpeg -i test.mpg -map 0:0 -vcodec copy -map 0:5 -acodec copy test_de.mpg

Im konkreten Fall einer bestimmten DVD kam aber kein Ton heraus, jedoch eine Datei mit sage und schreibe 25 Tonspuren. Der Workaround sieht dann so aus, dass man zunächst das Bildsignal extrahiert und danach die gewünschte Tonspur ebenfalls in eín eine eigene Datei schreibt Hat man beide Dateien erfolgreich erstellt, packt man beide wieder in einen mpg container ("muxen"). Dafür benutzt man das Programm "mplex":

ffmpeg -i test.mpg -vcodec copy test_de.m2v
ffmpeg -i test.mpg -map 0:4 -acodec copy test_de.dts
mplex -f 8 -o test_de.mpg test_de.m2v test_de.dts

Der Parameter -f 8 veranlasst mplex einen DVD-kompatiblen Container zu generieren.