SelfLinux Multimedia Video DVDs rippen Abschnitt 1 | SelfLinux-0.13.0

| DVDs rippen | Autoren Formatierung GFDL

#### 1 Einführung

Da hast Du nun also die schöne neue DVD gekauft. Du findest sie absolut Klasse und möchtest sicher sein, dass, was immer auch passiert, Du auf jeden Fall eine Kopie dieses Films besitzt. Aber, zum Kuckuck, wie bekommst Du ihn von der großen DVD auf so eine kleine CD? Und wohlgemerkt in guter Qualität? Lies einfach weiter.

WARNUNG! Diese Anleitung ist nichts für das mutlose Gemüt. Sie umfasst Dinge wie das Kompilieren von Code, Installieren von Software und die Benutzung der Kommandozeile. Wenn Du nicht weißt, wie configure; make; make install auszuführen ist, dann lese zunächst andere Dokumentationen und lerne es. Wenn Du das nicht willst, dann installiere Windows und benutze eines jener guten DVD-Ripping-Programme, die es dafür gibt. Ich möchte keinen Flame-Krieg Linux gegen Windows. Es ist einfach so, dass dieser Vorgang unter Linux etwas schwieriger ist.

Du bist immer noch dabei? Wunderbar! Du bist dabei, eine Reise durch ein wunderschönes Land anzutreten...

#### 1.1 Copyright

Copyright (c) 2002 Moritz Bunkus ( moritz@bunkus.org). Es ist erlaubt, dieses Dokument unter Einhaltung der GNU Free Documentation License, Version 1.2 oder neuer, wie sie von der Free Software Foundation herausgegeben wird, zu verteilen und/oder zu modifizieren. Originaltext wurde von Moritz Bunkus in englischer Sprache verfasst. Die vorliegende deutsche übersetzung stammt von Nicolai Lissner.

Für SelfLinux bearbeitet von Arnulf Pelzer ( webmaster@arnulfpelzer.de)

#### 1.2 Notwendige Software

Zunächst möchte ich Dir einige Werkzeuge vorstellen, die Du benutzen wirst:

- MPlayer ist ein Movie-Player, der eine große Zahl von Dateiformaten und Media-Codecs unterstützt: MPEG1, AVIs (einschließlich aller Windows-Codecs und alle DivX-Codecs), DVDs, VCDs, SVCDs usw. Ich benutze ihn zum Betrachten aller Arten von Dateien.
- MEncoder ist Teil des MPlayer-Pakets und wird zum Kodieren von Video und Sound verwendet. MEncoder ist in der Lage, DVDs zu wandeln.
- transcode ist ein Satz von Werkzeugen, die es erlauben, eine lange Liste von Dateiformaten in eine lange Liste von anderen Dateiformaten zu wandeln, einschließlich von DVD zu AVI oder (S)VCD.
- Wie du weißt, sind die meisten DVDs verschlüsselt. libdvdcss ist eine Library, die DVD-Inhalte entschlüsselt.
- DVDs enthalten Informationen über Titel, Kapitel, Angles und Sprachen, die in den Dateien enthalten sind. Diese Informationen werden in .IFO-Dateien gespeichert. libdvdread wird häufig verwendet, um diese Dateien zu analysieren und die nötigen Informationen zu extrahieren.
- lame (Lame Ain't an MP3 Encoder) kodiert MP2/WAV-Audio in das MP3-Format.
- vobcopy kann dazu benutzt werden, VOBs von der DVD zu kopieren. Die Entschlüsselung geschieht dabei 'on the fly'.
- dvd::rip ist die grafische Benutzeroberfläche für transcode.

Ich werde Dir zwei Methoden zur DVD-Wandlung zeigen - eine unter Verwendung von MEncoder und eine unter Verwendung von transcode. Nichtsdestotrotz benötigst du für beide Methoden einige Dateien.

#### 1.3 Ein Wort zu Codecs

In einer idealen Welt würde es nur ein Codec geben - das beste. Aber diese Welt ist weit vom Ideal entfernt. Das Ergebnis ist, dass es eine große Anzahl von Video- und Audio-Codecs zur Auswahl gibt. Zunächst werde ich die verschiedenen Arten von Codecs erklären:

- Native Codecs sind normale Linux-Binärdateien (meistens shared objects, libCODECNAME.so). Ihre Unterstützung ist trivial.
- Windows-Codecs sind die originalen oder leicht modifizierten Windows dynamic libraries (DLLs, AX u.ä.) Diese Codecs funktionieren nicht von Haus aus unter Linux - Du benötigst eine spezielle Library, um diese Codecs verwenden zu können. Diese Library nennt sich avifile. Noch vor einigen Monaten war dies die einzige Möglichkeit, AVIs unter Linux anzusehen.

Heute erscheinen die meisten Codecs mit einer speziellen Linux-Version (wie z.B. XviD, DivX 4/5/) und andere.

#### 1.3.1 Video Codecs

Hier ist eine Liste der unterstützten Video-Codecs

- MPEG4 ist ein offizieller Video-Kompressions-Standard. Es gibt keinen Codec, dessen Name einfach MPEG4 ist. Wenn Du über MPEG4 sprichst, sprichst Du nicht über einen spezifischen Codec - Du sprichst über einen Sammlung von Techniken, Videos zu komprimieren. MPEG4-kompatibel meint, dass ein Codec Dateien erzeugt, die mit anderen MPEG4-kompatiblen abgespielt werden können.
- DivX ;-) ist der original gehackte Microsoft MPEG4-Codec, mit dem all diese Ripperei anfing. Er unterstützt nicht alle MPEG4-Features wie z.B. B-Frames oder global motion compensation GMC). Einige benutzen diesen Codec noch immer unter Windows mit dem exzellenten Werkzeug Nandub. Er wird unter Linux seltener benutzt, da es Codecs gibt, die eine bessere Qualität zur Verfügung stellen. Der Codec kommt als Windows dynamic library daher (divx.dll und einige andere) und benötigt unter Linux avifile.
- DivX 4 und 5 sind die offiziellen Nachfolger. DivX 5 ersetzt DivX 4. Das ist der Grund, warum Du nicht beide Codecs zur gleichen Zeit installieren kannst (nun - technisch ist das möglich, aber Du solltest das aus ersichtlichen Gründen nicht tun). Dies sind native Linux shared objects - genannt libdivxdecore.so und libdivxencore.so. Die Sourcen dazu liegen nicht offen. Für Windows gibt es andere Versionen, und nur die kommerzuelle Version unterstützt sämtliche Optionen wie B-Frames, GMC oder Quarter PEL. Die kostenlose Version kann aber Dateien abspielen, auch solche, die mit der kommerziellen Version erstellt wurden. Leider gibt es nur eine kostenlose Version für Linux, die all diese netten Möglichkeiten nicht zur Verfügung stellt. DivXNetworks denkt darüber nach, auch für Linux eine kommerzielle Lösung zu Verfügung zu stellen. Aber erwarte nicht, dass dieser Codec in Naher Zukunft erscheinen wird.
- XviD (das ist DivX rückwärts gelesen) ist eine OpenSource MPEG4 Implementierung, die im Hinblick auf Kompression und Bildqualität wirklich gut ist. An der Unterstützung erweiterter MPEG4-Funktionen (b-frames , GMC) wird gearbeitet oder sind bereits implementiert.
- libavcodec oder kurz lavc ist ein weiterer Open Source MPEG4-kompatibler Video-Codec, der in Performance und Qualität DivX 5 und auch XviD überlegen ist. Dieser Codec unterstützt B-Frames. Er ist Teil des ffmpeg-Projekts.
- Natürlich gibt es MPEG1-kompatible Codecs, die Du für VCDs benötigst und MPEG2-kompatible Codecs für SVCDs oder DVDs. Im Moment zielt diese Anleitung auf die Erzeugung von AVIs, daher werde ich zu keinem dieser Codecs ins Detail gehen.
- Die meisten anderen Codecs sind entweder veraltet (wie Intel Indeo 5) oder andere gecrackte Version von Microsofts MPEG4-Codec wie AngelPotion). Es gibt weitere Codecs (wie VP4), die aber noch in der Entwicklungsphase sind und noch keine funktionierenden Lösungen für uns hier bieten.

Die Anleitung richtet ihr Hauptaugenmerk auf zwei Codecs: XviD und lavc. Die Gründe dafür sind, dass beide eine exzellente Qualität bieten, beide schnell sind und Du nur einen MPEG4-kompatiblen Decoder (wie DivX 5 oder XviD) auf einem Windowssystem zum Abspielen brauchst. Die Wiedergabe unter Linux ist überhaupt kein Problem - MPlayer oder Xine spielen fröhlich DivX 4/5, XviD und lavc-kodierte Filme.

#### 1.3.2 Audio Codecs

Wieder eine Liste, dieses mal für Audio-Codecs:

- MP3 ist die Kurzform für MPEG1 layer 3 und ist ein offizieller Kompressions-Standard. Wenn Du über MP3 sprichst, sprichst Du ber eine Kompressions-Technik, nicht über einen speziellen Codec. Es gibt mehr Codecs für MP3 als ich an einem Tag aufzählen könnte.
- lame ist eine Abkürzung für Lame Ain't an MP3 Encoder (Lame ist kein MP3-Encoder - auch wenn es einer ist ;-)) lame bietet einen Encoder der der MP3-Dateien in sehr guter Qualität produziert. Sowohl transcode als auch MEncoder nutzen lame zur Audio-Kompression.
- AC3 ist wieder ein offizieller Audio-Kompressions-Standard. Nahezu alle DVDs enthalten AC3-kodierte Audiospuren. Es gibt heute Dekoder sowohl für Windows als auch für Linux, die mit AC3-Ton innerhalb von AVIs arbeiten. Der Vorteil ist, dass keine erneute Komprimierung nötig ist (eine erneute Komprimierung ist immer mit einem Verlust an Qualität verbunden) und das Mehrkanal-Ton (Dolby Surround und ähnliches) erhalten bleibt. Der Nachteil ist, dass AC3-Ton mehr Speicherplatz als MP3-kodierter Ton benötigt.
- Vorbis ist ein neuer Open Source Audio-Kompressions-Codec. Er ist sowohl für Windows als auch Linux erhältlich. Die Vorteile sind ein besseres Qualität-zu-Größe-Verhältnis verglichen mit MP3 und Mehr-Kanal-Unterstützung. Leider kann man Vorbis-Audio nicht vernünftig in AVIs einbetten - aber ich arbeite an einem Programm, das Video und Vorbis-Audio zusammen in einer OGG-Datei speichern kann. Sobald dieses fertig ist werde ich es in diese Anleitung aufnehmen.

Ich hoffe, dies hat die Dinge ein bischen geklärt.

#### 1.4 Allgemeine Libraries / Codecs

Ich werde in diesem Kapitel nicht all zu sehr ins Detail gehen. Es gibt in jedem Paket weitere Dokumentation zur Installation. Siehe dort, falls Du Probleme haben solltest. Beachte, dass MPlayer ziemlich umfangreiche Anforderungen bezüglich der Versionen von gcc, binuntils und anderen zentralen System-Komponenten hat. Siehe Die MPlayer-Installations-Dokumentation.

Beachte: Prüfe vor dem Download der Software, ob Deine Distribution bereits diese Software enthält. Ich verwende Debian Woody (testing) und habe festgestellt, dass sehr viel Software bereits als fertiges Paket vorhanden ist.

- libdvdcss - findet man an diversen Stellen im Internet. Auf Grund der deutschen Gesetzgebung darf ich hier keine konkreten Hinweise zum Bezug dieser Software geben.
- libdvdread - erhälst Du meist von der gleichen Website wie libdvdcss. Beachte das Debian Woody libdvdread bereits enthält. Ein einfaches apt-get install libdvdread2 libdvdread2-dev sollte genügen.
- XviD-Codec - wird gebraucht, wenn Du transcode benutzen willst.
  Eine kurze Anleitung aus der MPlayer-Dokumentation:
  - cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login Wenn Du nach einem Passwort gefragt wirst, drücke einfach Enter
  - cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore
  - cd xvidcore/build/generic
  - Passe Makefile.linux Deinem System an.
  - make -f Makefile.linux
  - Kopiere die Datei xvidcore/src/divx4.h nach /usr/local/include/decore.h und nach /usr/local/include/encore2.h|. Erstelle ein Backup der Dateien, die Du überschreibst
  - Kopiere libxvidcore.so und libcore.a nach /usr/local/lib/
  Zum Compilieren brauchst du möglicherweise eine spezielle Version von nasm, die Du unter http://homepage1.nifty.com/herumi/soft/petit/nasmsse2.tgz bekommst.
- vobcopy - Erhälst Du von der Homepage http://linux-programming-newbie.org/.
- avifile - wie bereits erklärt wird es gebraucht, um Windows-Codecs zu verwenden, für die es keine linuxeigenen Binärdateien gibt. Gehe zur Homepage http://avifile.sourceforge.net/. Bevor Du das tust, prüfe, ob Deine Linux-Distribution nicht bereits avifile enthält (Debian Woody enthält avifile). Außerdem benötigst Du die Windows-Codecs von der avifile-Homepage oder direkt von der MPlayer's Homepage http://www2.mplayerhq.hu/MPlayer/releases/codecs/.
- DivX 5 - obwohl diese Anleitung sich nicht mit DivX 5 beschäftigt, kannst Du das Codec bei http://www.divx.com/ erhalten. Falls Du ein wenig Zeit übrig hast, schlage ich vor, dass Du selbst einige Vergleiche zwischen DivX 5 und XviD oder lavc vornimmst und selbst siehst, dass es schlechter als die letzten beiden Codecs ist.

#### 1.5 MPlayer

Du brauchst MPlayer. Es ist egal, ob Du später MEncoder oder transcode verwenden willst - Du brauchst in jedem Fall MPlayer. Also besorge MPlayer von http://www.mplayerhq.hu/. Ich bevorzuge die CVS-Version, da sie häufig Features besitzt, die dem offiziellen Release fehlen. Tatsächlich basiert diese Anleitung auf Features seit wenigen Tagen in der CVS-Version existieren (heute ist der 30. April 2002). Tu einfach das Gleiche - sei tapfer und nimm die CVS-Version.

Wenn Du MEncoder zum Kodieren verwenden möchtest, empfehle ich außerdem die Verwendung von libavcodec. Bei Verwendung der CVS-Version von MPlayer musst Du libavcode herunterladen, die Release-Version von MPlayer beinhaltet bereits libavcodec. Die Anweisungen sind aus der MPlayer-Dokumentation entnommen:

- Lade das ffmpeg-Project über CVS: cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login. Drücke einfach ENTER, wenn Du nach einem Login oder Passwort gefragt wirst.
- cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg
- Verschiebe das libavcodec-Verzeichnis von den FFmpeg-Sourcen in das Wurzelverzeichnis des MPlayer-CVS-Pfads. Symlink reicht nicht aus, Du musst das Verzeichnis bewegen oder kopieren.

Eine Bemerkung zum Kompilieren: Stelle sicher, nicht XviD support einzubinden. Stattdessen binde die Unterstützung für den libavcodec ein. Installations-Anweisungen stehen in der MPlayer-Dokumentation zur Verfügung. Ja, Du hast richtig gelesen: Kompiliere transcode mit XviD und MPlayer ohne XviD aber mit libavcodec. Der Grund dafür ist, dass MPlayer nicht für beide Codecs zur gleichen Zeit Unterstützung enthalten kann, da beide Codecs Variablen mit dem gleichen Namen verwenden.

#### 1.6 Transcode

Besorge transcode von der Homepage. Stelle sicher, dass es mit XviD-Unterstützung und Unterstützung für MPlayer's post processing-Funnktionen compiliert wird. Nochmals: Ich empfehle die Verwendung der CVS-Version.

Außerdem willst Du dvd::rip herunterladen, eine exzellente, Gtk+ basierte Benutzerobefläche für transcode. Du bekommst sie hier. Installations-Anweisungen sind enthalten.

#### 1.7 RPMs erhalten

Ich kenne zumindest zwei Adressen, an denen du einige RPMs für die oben erwähnte Software erhälst.

- Penguin Liberation Front lair http://plf.zarb.org/ - RPMs für Mandrake
- http://ftp.falsehope.com/home/rathann/mplayer/ - RPMs für Redhat 7.x