Yamagi.org - Finger
20.05.2009
Nachdem ich aus gegebenem Anlass einmal ausgetueftelt habe, wie man aus
zickigen DVDs ein Matroska-Video erstellt, hier eine kurze Anleitung.
Verwendete Software:
- cpvts: Kopiert eine DVD 1:1 auf die Festplatte, entfernt dabei den
CSS Kopierschutz. Leider nicht in den Ports vorhanden, Google findet
es aber :) Aus den Ports sollten multimedia/libdvdread und
multimedia/libdvdcss installiert sein.
- mencoder: Encoder des mplayer-Projektes, im Wesentlichen ein
Frontend auf libavcodec. In den Ports unter multimedia/mencoder.
- oggenc: Zum Encoden von Wave-Dateien ins ogg/Vorbis Format. Teil von
audio/vorbis-tools.
- dvdxchap: Dieses Tool erzeugt eine Kapitelbeschreibung der DVD,
welche von mkvmerge gelesen werden kann. Teil von
multimedia/ogmtools.
- mkvmerge: Tool zum Erstellen der Matroskadatei. Zu finden unter
multimedia/mkvtoolnix.
Wieso Matroska und nicht OGM, werden sich nun einige Fragen. An sich
nehmen sich beide Formate nicht viel, sie koennen in etwa das Gleiche.
Es gibt jedoch einen entscheidenden Unterschied. Matroska kann grafische
Untertitel, wie die DVD sie mitbringt. OGM kann nur textbasierte
Untertitel, die Untertitel der DVD muessen konvertiert werden. Ein
Vorgang, der kaum voll automatisiert geht, man muss die konvertierten
Untertitel korrekturlesen, was sehr nervig ist.
Der Trick beim Rippen ist, dass mencoder den Sound einfach uebernimmt,
ihn also 1:1 umwandelt. Um die Synchronitaet zum Bild zu halten, werden
in das das Bild Frames eingefuegt oder entfernt. Rippt man nun nur das
Bild und den Ton nicht, sprich man nutzt die Option -noaudio, ist es
anschliessen praktisch unmoeglich den den Sound synchron zum Bild
einzumischen. Daher sollte immer mit Ton gerippt werden, auch wenn die
Tonspur am Ende nicht genutzt werden soll.
Wir legen ein Verzeichnis an, in welches die DVD kopiert wird.
mkdir dvd/
Im ersten Schritt wird die DVD auf die Festplatte uebertragen. Dies ist
sehr anzuraten, da die Festplatte schneller als die DVD ist, also
spaeter zeit gespart wird. Ausserdem ist man CSS gleich los.
cpvts -d /dev/cd0 -a dvd/
Nun kopieren wir das Bild und eine beliebige Tonspur in eine AVI-Datei
um. Wir encoden aus dieser heraus, da es erfahrungsgemaess bessere
Synchronitaet gewaehrleistet als ein direktes Rippen von der DVD.
mencoder -oac copy -ovc copy -dvd-device dvd/ -o film_roh.avi dvd://N
Anschliessend wird encodet, ein klassisches 2-Pass Encoding. Es kann
jeder Codec genutzt werden, hier nehme ich MPEG4.
mencoder -cache 65536 -oac mp3lame -lameopts cbr:br=256 -ovc lavc
-lavcopts vcodec=mpeg4:vbitrate=1500:threads=8:vpass=1:v4mv:mbd=2
:autoaspect:turbo film_roh.avi -o film_bild_pass1.avi
mencoder -cache 65536 -oac mp3lame -lameopts cbr:br=256 -ovc lavc
-lavcopts vcodec=mpeg4:vbitrate=1500:threads=8:vpass=2:v4mv:mbd=2
:autoaspect film_roh.avi -o film_bild_pass2.avi
Nun den Ton extrahieren und in ein Vorbis-Strom konvertieren. Dies kann
nicht ueber den Umweg ueber eine WAVE-Datei erfolgen, da deren maximale
Laenge nicht selten zu kurz ist. Zuerst wird also eine Fifo erstellt.
mkfifo sound.fifo
Nun wird oggenc gestartet:
oggenc -r -C 6 -R 48000 -q 6 -o audio1.ogg sound.fifo
Und mplayer um den Stream zu uebergeben:
mplayer -ao pcm:file=sound.fifo:fast:nowaveheader -vo null -vc
null -aid 128 -af channels=6 -dvd-device dvd/ dvd://N
Dies wiederholen wir mit allen Audiostreams, die wir haben wollen.
Anschliessend kommen wir zu den Untertitel.
mencoder -dvd-device dvd -vobsubout subtitles -vobsuboutindex 0 -sid
0 -nosound -ovc copy -o /dev/null dvd://1
Auch dies wird mit allen Untertiteln wiederholt. Abschliessend fehlen
noch die Kapitel:
dvdxchap dvd/ > chapters.txt
Damit haben wir alles und koennen unsere Matroskadatei erstellen. Die
genauen Optionen sind in der Manpage zu mkvmerge(1) erklaert, dass hier
nur als Beispiel. Escapes per \, da sonst das finger-Script die
Doppelstriche als Formatierung interpretiert...
mkvmerge \-\-title "Unser Film" \-\-track-name 0:"Main Feature" -A
\-\-aspect-ratio 0:16/9 film_bild_pass2.avi \-\-language 0:de
\-\-track-name 0:"German" audio1.ogg \-\-language 0:ja \-\-track-name
0:"Japanese 5.1" audio2.ogg \-\-language 0:de \-\-track-name
0:"German Subtitle" subtitlese.idx \-\-chapters chapters.txt
-o unser-film.mkv
Das war es, wir haben nun ein 1:1 Abbild der DVD. Es sind 5.1
Audiospuren in allen gewuenschten Sprachen enthalten, ebenso Untertitel
und die Kapiteleinteilung. Wer es moechte kann in die gleiche Datei auch
noch das Bonusmaterial einfuegen. Die Datei kann von vielen Mediaplayer
abgespielt werden, zum Beispiel mplayer oder VLC bieten sich dort an.
Vorheriger Beitrag | Home | Seite | Naechster Beitrag