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,- erstens weil es mir zu lange dauert,
- zweitens, weil ich keinen Qualitätsverlust hinnehmen möchte (egal ob er jetzt wirklich spürbar ist oder nicht) und
- drittens, es ist genug Speicherplatz da, ich muss nicht noch weiter komprimieren.
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.