ubuntuusers.de

DVDs manuell rippen

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/dvd.png Dieser Artikel beschreibt das Erstellen von DVD-Sicherheitskopien mit MPlayer/MEncoder {en} für die Extrahierung der Quelldaten von der DVD und die Konvertierung der Video-Spur, den vorbis-tools und normalize-audio für die Konvertierung der Audio-Spur/Spuren und MKVToolNix für das Zusammenfügen von Video, Audio und Untertiteln in einen Matroska-Container. Der freie x264 Codec entspricht MPEG-4 AVC und bietet eine deutlich bessere Bildqualität/Kompression als geläufige MPEG-4 ASP Codecs (z. B. XviD, DivX). D. h. höhere Bildqualität bei gleicher Bitrate oder kleinere Dateigröße bei gleicher Qualität. Einen ausführlichen Codec-Vergleich gibt es bei Doom9.org {en}.

Die mit dem hier beschriebenen Verfahren erzeugten Dateien eignen sich nicht gut für den Einsatz auf aktuellen (Stand Oktober 2006) Hardware DVD-Playern, da es hier (noch) an der Unterstützung der verwendeten Formate mangelt. Die Wiedergabe auf PCs unter Ubuntu läuft sehr gut mit MPlayer, XINE, VLC (ab SVN 0.8.6), Totem-Xine (GStreamer bisher nur eingeschränkt).

Pakete installieren

Folgende Pakete müssen installiert [1] werden:

  • lsdvd (multiverse)

  • mplayer (multiverse )

  • mencoder (multiverse )

  • normalize-audio (universe )

  • vorbis-tools

  • gpac (multiverse )

  • mkvtoolnix (universe )

  • mkvtoolnix-gui (universe)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install lsdvd mplayer mencoder normalize-audio vorbis-tools gpac mkvtoolnix mkvtoolnix-gui 

sudo aptitude install lsdvd mplayer mencoder normalize-audio vorbis-tools gpac mkvtoolnix mkvtoolnix-gui 

Allgemein muss eine DVD gelesen werden können. Hierfür wird beispielsweise libdvdcss2 benötigt. Hinweise auf der Wiki-Codec-Seite

DVD rippen

Zunächst wird die DVD auf die Festplatte gerippt.

Richtige Spur auf der DVD anzeigen lassen

Auf einer handelsüblichen DVD gibt es immer mehrere Tracks, von denen allerdings nur einer den eigentlichen Film enthält. Die anderen enthalten beispielsweise i.d.R. für den Rip uninteressante Werbetrailer oder Bonus-Material. Um diesem Track zu finden gibt man einfach folgendes bei eingelegter DVD in die Konsole [2] ein:

lsdvd |grep Longest 

oder auch

lsdvd /dev/sdc0 |grep Longest 

Manchmal auch /dev/dvd , /dev/dvd0 und ab dem 2.6.28 Kernel oft auch: /dev/sr0, je nachdem wie die DVD eingebunden wird. Die richtige Spur wird angezeigt.

Hinweis:

In seltenen Fällen wird hier die falsche Spur ermittelt. Vor dem Rippen sollte man sich daher auf jedenfall mit

mplayer dvd://n 

vergewissern, ob es die Richtige ist. Ansonsten manuell die Richtige suchen.

Komplette Spur rippen

mplayer dvd://n -v -dumpstream -dumpfile Dateiname.vob 
  • Ggf. ist es nötig, das zu benutzende Gerät bei diesem Befehl mit anzugeben: z.B. -dvd-device /dev/sr0

  • n gibt die oben ermittelte Spur an, die gerippt werden soll, z.B. 1

  • -dumpstream -dumpfile Dateiname.vob (speichert die gesamte Spur auf die Festplatte mit Namen Dateiname.vob)

  • Liegt die DVD nicht in einem Gerät, sondern als ISO-Datei vor, gibt man den Namen der Datei ebenfalls so an: -dvd-device /path/to/dvdfile.iso

Nur bestimmte Kapitel rippen

Will man Vor- und Abspann nicht mit auf die Festplatte kopieren, so kann man optional mit dem Parameter -chapter x-y erreichen, dass nur die Kapitel von x bis y einschließlich gerippt werden. Beinhaltet zum Beispiel das erste Kapitel nur den Vorspann und das 20. Kapitel nur den Abspann, so fügt man beim Rippen die Option

-chapter 2-19

an den o.g. Befehl an, also:

mplayer dvd://n -v -chapter 2-19 -dumpstream -dumpfile Dateiname.vob 

Hinweis:

Gibt man nur ein Startkapitel an, wird als Endkapitel 1 vorausgesetzt, also ab den Startkapitel der restliche Film gerippt

Untertitel rippen

Zusätzlich kann man die gewünschten Untertitel im VobSub-Format rippen. Erzeugt werden die Dateien Dateiname.idx und Dateiname.sub. Oftmals ist es allerdings erwünscht, die Untertitelspuren in ein Textformat wie SubStation_Alpha umzuwandeln, da dieses sowohl kleiner ist (oftmals nur ca. 100kb), als auch deutlich schöner, und in beliebiger Schrift und Schriftgröße angezeigt wird.

mencoder dvd://n\
         -nosound -ovc frameno -o /dev/null\
         -slang de\
         -sid 1\
         -vobsuboutindex 0\
         -vobsuboutid de\
         -vobsubout Dateiname 
  • -dvd://n richtige Spur n auf der DVD

  • -nosound -ovc frameno -o /dev/null kein Video und kein Audio (da ja nur die Untertitel herausgemuxt werden sollen)

  • -slang en die Sprache der gewünschten Untertitelspur

  • -sid 1 die SubtitleID der gewählten Spur

  • -vobsuboutindex 0 der Index der herauszumuxenden Untertitelspur in den sub- und idx-Dateien <- bei mehreren Spuren sollte nach oben gezählt werden.

  • -vobsuboutid de die Sprach-ID der herauszumuxenden Untertitelspur

  • -vobsubout Dateiname Der Dateiname: es werden eine Dateiname.sub und eine Dateiname.idx erzeugt.

Informationen zur SubtitleID und zur Sprache der gewünschten Untertitelspur liefert:

mencoder dvd://1 -o /dev/null | grep sid 

Nun kann mit Hilfe der beiden Dateien *.sub und *.idx und einem Programm wie Avidemux mit Hilfe von OCR-Texterkennung umwandelt. Näheres ist in Avidemux erklärt

Erstellen eines Ausschnittes der Vob-Datei zum Experimentieren

Konvertierungsvorgänge von Filmen, die 1:30h und länger sind, dauern lange. Um so ärgerlicher ist es daher, wenn nach dieser Zeit das Ergebnis unzufriedenstellend ist. Daher kann es nützlich sein, aus der Dateiname.vob einen kurzen Ausschnitt herauszuschneiden und an diesem alle Vorgänge auszuprobieren.

mencoder Dateiname.vob\
         -ovc copy -oac copy\
         -ss 400\
         -endpos 30\
         -o kleine_testdatei.vob 
  • Dateiname.vob Große Datei, aus welcher ein kleiner Teil herausgeschnitten werden soll

  • -ovc copy -oac copy Audio und Video wird 1:1 im gewählten Zeitraum kopiert

  • -ss 400 Stelle, ab welcher angefangen werden soll, die neue Datei zu erstellen, hier ab der 400sten Sekunde.

  • -endpos 30 Zeit, wie lange die neue Datei dauern soll, hier 30 Sekunden.

  • -o kleine_testdatei.vob Name der neuen Vob-Datei die erstellt wird.

Nun kann man alle genannten Schritte mit der kleine_testdatei.vob ausprobieren und experimentieren.

Audio

Die nachstehenden Prozesse lassen sich für beliebig viele Audiospuren (z. B. weitere Sprachen, Audio-Kommentar, etc.) wiederholen. Auch Kombinationen verschiedener Formate (z B. Hauptspur Deutsch in Dolby Digital AC3, Hauptspur Englisch in Dolby Digital AC3, Kommentarspur in Vorbis mit -q3) sind problemlos möglich.

Audio nicht komprimieren - empfohlene Vorgehensweise

Audiospur in AC3 (Dolby Digital) beibehalten und rippen

Das Beibehalten der originalen Tonspur bietet die beste Qualität, wenn man es nicht auf die kleinstmögliche Dateigröße absieht.

mplayer Dateiname.vob -aid 128 -dumpaudio -dumpfile Dateiname.ac3 
  • -aid 128 (die erste Tonspur, 129 wäre die zweite, etc.)

  • -dumpaudio -dumpfile Dateiname.ac3 (speichert Audio auf die Festplatte mit Namen Dateiname.ac3)

Audio komprimieren

Audiospur rippen und in PCM (WAV) konvertieren

Wenn man die AC3-Spur nicht kopieren möchte, muss man diese zunächst wie folgt rippen:

mplayer Dateiname.vob -ao pcm:fast:file=Dateiname.wav -vc null -aid 128 -vo null 

Die Option aid 128 steht für die erste Tonspur, 129 wäre die zweite, etc.

Die nachfolgenden Beispiele zeigen die Flexibilität des MPlayers. Die Rauten (#) sind hierbei Platzhalter für den DVD-Titel und dessen Kapitel:

mplayer -vc null -vo null -ao pcm:fast:waveheader:file=test.wav dvd://# -chapter #-# 

Möchte man beispielsweise aus dem zweiten Titel der DVD die Kapitel 3 bis 4 extrahieren, ändert sich die Eingabe wie folgt:

mplayer -vc null -vo null -ao pcm:fast:waveheader:file=test.wav dvd://2 -chapter 3-4 

Verfügt die DVD über mehrere Tonspuren pro Titel (z.B. Englisch, Deutsch, Französisch), kann über den Parameter -aid die gewünschte Tonspur gewählt werden:

mplayer -vc null -vo null -aid 128 -ao pcm:fast:waveheader:file=test.wav dvd://# -chapter #-# 

Wenn man sich nicht sicher ist, welche -aid-Nummer die gewünschte ist, kann man die DVD kurz mittels mplayer per

mplayer dvd:// -v 

abspielen und den Wert ablesen. Die Ausgabe im Terminal sieht dabei in etwa so aus:

There are 1 titles on this DVD.
There are 1 angles in this DVD title.

audio stream: 0 format: ac3 (stereo) language: Deutsch aid: 128.

Lautstärke der Audiospur anheben (normalize)

Die originalen Tonspuren sind meist relativ leise. Mit "normalize-audio" kann man die Lautstärke um ein paar Dezibel anheben. Dieser Schritt ist optional und kann auch übersprungen werden.

normalize-audio Dateiname.wav 

Audiospur in Ogg Vorbis konvertieren

oggenc -q5 Dateiname.wav 

Die Option -q5 entspricht einer Bitrate von ca. 160 Kb/s (und ist die Qualität, bei der man von "Transparenz" spricht. Die meisten Hörer können hierbei keinen Unterschied zum Original feststellen).

Audiospur in MP3 konvertieren

Der nachfolgende Befehl extrahiert den Ton in eine MP3-Datei namens test.mp3. Die Rauten (#) sind hierbei Platzhalter für den DVD-Titel und dessen Kapitel:

mencoder dvd://# -dvd-device /dev/dvd0 -chapter #-#  -aid 128 -oac mp3lame -lameopts aq=2:abr=192 -ovc copy -of rawaudio -o test.mp3 

Möchte man beispielsweise aus dem zweiten Titel der DVD die Kapitel 3 bis 4 extrahieren, ändert sich die Eingabe wie folgt:

mencoder dvd://2 -dvd-device /dev/dvd0 -chapter 3-4  -aid 128 -oac mp3lame -lameopts aq=2:abr=192 -ovc copy -of rawaudio -o test.mp3 

Audiospur rippen und in AAC konvertieren

Der folgende Befehl verwendet ein FIFO, um die Audiospur direkt in AAC umzuwandeln. Es kann alternativ auch erst eine WAV erzeugt werden.

mkfifo audiodump.pcm
faac -q 100 -P -R 48000 -X audiodump.pcm -o track1.aac & mplayer track1.vob -ao pcm:fast:nowaveheader:file=audiodump.pcm -vc null -aid 128 -vo null >/dev/null
rm audiodump.pcm 

Mit folgendem Befehl kann man die 5.1 Kanäle einer DVD-Audiospur erhalten und in ein 5.1 AAC übertragen.

mkfifo audiodump.pcm
faac -q 100 -I 5,6 -P -R 48000 -C 6 -X audiodump.pcm -o track1.aac & mplayer track1.vob -ao pcm:fast:nowaveheader:file=audiodump.pcm -vc null -vo null -channels 6 -aid 128 >/dev/null
rm audiodump.pcm 

Video

Ermittlung der Bitrate

Dieser Schritt ist nur nötig, wenn der gerippte Film eine bestimmte Dateigröße (z.B. 700 MB) erhalten soll und funktioniert mit folgender Formel

Bitrate = (Ziel_Dateigröße_in_Mbyte - Audio_Dateigröße_in_Mbyte) * 1024 * 1024 / Länge_in_Sekunden * 8 / 1000

Kurz:

Bitrate = Ziel_reine_Videogröße_in_Mbyte / Länge_in_Sekunden * 8388,608

Um z.B. einen Film von 2 Stunden Länge, mit einer bereits komprimierten Audiospur von 60 MB, auf die Größe einer 700-MB-CD zu komprimieren, müsste die Bitrate wie folgt ermittelt werden

(700 - 60) * 1024 * 1024 / (120*60) * 8 / 1000 = ca. 745 kbps

Die genaue Länge des Videos in Sekunden kann man mit dem Befehl

mplayer -frames 0 -identify Dateiname.vob 2>/dev/null|grep ID_LENGTH 

herausfinden.

Allerdings sollte man die ermittelte Bitrate lieber etwas abrunden, wenn man den fertigen Film auf CD brennen will. Andernfalls riskiert man, dass die erstellte Datei ein paar KB oder MB zu groß für das Medium ist.

Beschneiden

Das Beschneiden (Cropping) bezeichnet das Entfernen der schwarzen Balken um das Originalbild.

mplayer Dateiname.vob -vf cropdetect 

spielt die gerippte Datei Dateiname.vob mit dem Videofilter (-vf) cropdetect ab. MPlayer ermittelt automatisch, an welchen Stellen das Bild beschnitten werden muss, um störende schwarze Balken zu entfernen, die zudem unnötig Bits kosten würden. Die Werte werden im Terminal ausgegeben.

[CROP] Crop area: X: 13..708  Y: 0..575  (-vf crop=688:576:18:0).0 
[CROP] Crop area: X: 13..708  Y: 0..575  (-vf crop=688:576:18:0).0 
[CROP] Crop area: X: 13..708  Y: 0..575  (-vf crop=688:576:18:0).0 

Man navigiert am besten mit den Cursor-Tasten bzw. Bild-Tasten durch den Film, bis sich die Werte im Terminal nicht mehr ändern. Danach kann man die Wiedergabe mit Q abbrechen und die Werte kopieren/notieren. In obigem Beispiel 688:576:18:0.

Komprimierung in x264

Um die bestmögliche Qualität und/oder eine bestimmte Dateigröße zu erhalten, encodiert man die Videospur in zwei Durchgängen. Der erste Durchgang ermittelt hierbei eine Statistik über den Encodieraufwand jedes einzelnen Bildes und schreibt diese in die Datei divx2pass.log. Der zweite Durchlauf bedient sich eben dieser Statistik und verwendet für Szenen mit viel Bewegung mehr Bits als für solche mit weniger Bewegung. Dadurch ist gewährleistet, dass in komplexeren Szenen die Bitrate variabel erhöht werden kann und in ruhigen, weniger anspruchsvollen Bereichen Bits eingespart werden können.

Die nachfolgenden Beispiele verwenden die Werte aus den bisher durchgeführten Schritten für das Beschneiden (688:576:18:0) und die Bitrate (745) und müssen immer angepasst werden! Alle Encodieroptionen {de} sind auf sehr hohe Qualität ausgerichtet und können so übernommen werden.

Experten-Info:

Vorausgesetzt wird PAL-Video. Die umfassende Behandlung von Deinterlacing würde den Rahmen dieses Artikels sprengen. Es sei daher auf diesen Wikipedia-Artikel und die MPlayer Dokumentation {de} verwiesen. Als Deinterlacing-Filter leistet pp=lb (linear blend) gute Dienste. Im folgenden Beispiel wäre in diesem Fall -vf crop=688:576:18:0,harddup\ durch -vf crop=688:576:18:0,pp=lb,harddup\ zu ersetzen. Soll NTSC-Video kodiert werden, empfiehlt sich -vf pullup,softskip,crop=688:576:18:0,harddup\ bzw. -vf pullup,softskip,crop=688:576:18:0,pp=lb,harddup\ . Des Weiteren muss -ofps gemäß der MPlayer-Dokumentation {de} angepasst werden. Bei progressivem NTSC z. B. -ofps 24000/1001.

In diesem Beispiel wird das Bild nicht skaliert. Die ursprüngliche Bildgröße wird beibehalten und später das korrekte Seitenverhältnis im Matroska-Container gespeichert (z.B. 4/3). Aus Qualitätsgründen ist es generell nicht ratsam, das Bild zu vergrößern. Sollte man dennoch eine Skalierung in Betracht ziehen (z.B. Bildverkleinerung um mit niedriger Bitrate besser komprimieren zu können), ist die richtige Reihenfolge der Filter zu beachten: cropping vor deinterlacing vor scaling. In diesem Beispiel wäre für eine Verkleinerung z.B. -vf crop=688:576:18:0,pp=lb,scale=512:384,harddup\ zu setzen.

Erster Durchgang

mencoder -v\
         Dateiname.vob\
         -aspect 16/9\
         -vf crop=688:576:18:0,harddup\
         -ovc x264 -x264encopts subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:weight_b:turbo=1:pass=1:psnr:threads=0:bitrate=745\
         -ofps 25\
         -oac copy\
         -of rawvideo\
         -o Dateiname.264 
  • -aspect 16/9 Gibt das Pixelseitenverhältnis an, das ist günstig, da dieses auch nach dem Croppen gleich ist. Üblich sind hier 16/9, diese Werte stehen oft auf der Rückseite des DVD Covers.

  • -vf crop=688:576:18:0 (Werte für die Bildbeschneidung müssen angepasst werden)

  • harddup (Verbessern der Mux- und A/V-Synchronisationszuverlässigkeit)

  • -ovc x264 -x264encopts subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid:weight_b:turbo=1:pass=1:psnr:threads=0:bitrate=745 (bitrate muss angepasst werden)

  • -ofps 25 (25 Bilder pro Sekunde)

  • -oac copy (schleift die Audiospur aus Synchronisationsgründen mit durch)

  • -of rawvideo (speichert nur die Videodaten)

Zweiter Durchgang

mencoder -v\
         Dateiname.vob\
        -aspect 16/9\
        -vf crop=688:576:18:0,harddup\
        -ovc x264 -x264encopts subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:weight_b:pass=2:psnr:threads=0:bitrate=745\
        -ofps 25\
        -oac copy\
        -of rawvideo\
        -o Dateiname.264 
  • -aspect 16/9 Gibt das Pixelseitenverhältnis an, das ist günstig, da dieses auch nach dem Croppen gleich ist. Üblich sind hier 16/9, diese Werte stehen oft auf der Rückseite des DVD-Covers.

  • -vf crop=688:576:18:0 (Werte für die Bildbeschneidung müssen angepasst werden)

  • harddup (Verbessern der Mux- und A/V-Synchronisationszuverlässigkeit)

  • -ovc x264 -x264encopts subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid:weight_b:pass=2:psnr:threads=0:bitrate=745 (bitrate muss angepasst werden)

  • -ofps 25 (25 Bilder pro Sekunde)

  • -oac copy (schleift die Audiospur aus Synchronisationsgründen mit durch)

  • -of rawvideo (speichert nur die Videodaten)

Der Prozess der Videokodierung nimmt viel Zeit in Anspruch. Auf einem AMD Athlon64 3000+ schafft der erste Durchlauf ca. 16 und der zweite Durchlauf ca. 8 Bilder pro Sekunde. Es werden nur die reinen Videodaten gespeichert, da MEncoder derzeit noch nicht direkt in einen geeigneten Container wie MP4 oder Matroska speichern kann.

Matroska erzeugen

Dank Moritz Bunkus kann man die Zusammenführung der Dateien in einen Matroska-Container über eine grafische Benutzerschnittstelle namens MKVMerge erledigen. Man startet das Programm entweder aus einem Terminalfenster via

mmg 

oder über das Anwendungsmenü "Multimedia -> MKV Dateien erstellen (mkvmerge GUI)". Als Quelldateien dienen die bisher erzeugten Dateien (entweder per Drag & Drop, oder über die Schaltfläche "Hinzufügen"):

  • Dateiname.264 oder Dateiname.mp4 (die Videodatei)

  • Dateiname.ac3 (die originale Audiodatei)

  • Dateiname.ogg (optionale weitere Audiodateien)

  • Dateiname.idx (die Untertitel-Index-Datei. Dateiname.sub wird automatisch eingefügt)

In der Box "Tracks" können die eingefügten Spuren dann angeklickt und mit verschiedenen Einstellungen versehen werden. Die Möglichkeiten variieren je nach Spurtyp. Es ist ratsam, zumindest für die Audiospuren die Sprache unter "Language" auszuwählen. Die Untertitel sind sprachlich bereits eingeordnet und werden bei der Erzeugung der Matroska-Datei verlustfrei komprimiert.

Hinweis:

Falls man oben beim Encodieren kein Pixelseitenverhältnis angegeben wurde, muss dies nun im MKV-Container nachgeholt werden. Dies geschieht über die Auswahl unter "Aspect ratio" (z. B. 4/3 oder 16/9). Bei der Wiedergabe der DVD oder der bereits gerippten VOB-Datei gibt MPlayer das korrekte Seitenverhältnis (z. B. Movie-Aspect is 1.33:1 - prescaling to correct movie aspect) aus. Das Seitenverhältnis wäre in diesem Beispiel also 4/3=1.33.

Jetzt ist in der Box "Output filename" der Dateiname und Speicherort auszuwählen. Ohne Änderung wird Dateiname.mkv im aktuellen Verzeichnis erzeugt.

Ein Klick auf "Muxen starten" erzeugt die gewünschte Datei.

dvdbackup

Mit dvdbackup {en} können 1:1 Kopien von DVDs über das Terminal angefertigt werden. Alternativ kann man den Hauptfilm, Titelzusammenstellungen und Einzeltitel sichern. Folgendes Paket muss installiert [1] werden:

  • dvdbackup (universe)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install dvdbackup 

sudo aptitude install dvdbackup 

Der Programmaufruf erfolgt über das Terminal [2]:

dvdbackup -M 

Zusätzliche Parameter:

dvdbackup
BefehlBeschreibung
dvdbackup -M -i /dev/dvd -o ~/dvdbackupDiese Aktion sichert die komplette DVD.
dvdbackup -F -i /dev/dvd -o ~/dvdbackupSicherung des Hauptfilms.
dvdbackup -t X -i /dev/dvd -o ~/dvdbackupSicherung des Kapitels X von DVD.
dvdbackup -hZusätzliche Informationen aufrufen.

Diese Revision wurde am 29. März 2014 14:45 von aasche erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Rip, vorbis, Multimedia, Mencoder, 264, Mplayer, DVD, mkv, Subtitle, Matroska