PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : OGM - Ogg Media (Container für Xvid und Ogg)



hunter
27.02.03, 08:52
Einleitung:

Komprimierte Video Files bestehen aus einem Daten Container welcher drei verschiedene Elemente enthält:

- Informationen über den Inhalt des Containers (Header)
- Einen oder mehrere Videostreams
- Einen oder mehrere Audiostreams

Es gibt verschiedene dieser Containerformate. Avi und Quicktime dürften wohl die bekanntesten sein.

Die Video und Audiostreams haben wiederrum ein bestimmtes Format. Diese werden als Codecs bezeichnet.

Beispiele:

- Videocodecs: DivX, Mpeg4, Sorenson, ...
- Audiocodecs: Mp2, Mp3, WMA, ...

Avi Files können z.B. DivX oder Mpeg 4 als Videocodec enthalten. Quicktime meistens den Sorenson Codec. Als Audio kommt meistens Mp3 zum Einsatz.

Die genannten Codecs haben alle etwas gemeinsam: Sie sind nicht Open Source und sie haben komerziellen Charakter. Unter Linux kann man sie umsonst verwenden. Aber umsonst ist weder wirklich frei noch offen. Daher wäre es für Linuxer doch besser ganz auf Codecs und Container Formate zu setzen die wirklich Open Source sind. Zwei Kandidaten für Open Source Codecs sind: Xvid (Video) und Ogg (Audio).

Diese Formate sind nicht nur frei und Open Source, sie sind auch sehr gut. Sie produzieren gute Qualität bei wenig Speicherbedarf. Viele sind der Meinung das Ogg trotz niedrigerer Bitrate eine bessere Qualität als Mp3 erreicht. Und Xvid erreicht eine bessere Qualität als die DivX 5 Free Version. Die DivX 5 Pro Version wird sicher früher oder später auch eingeholt werden.

Das Optimum ist also: Xvid + Ogg. Wie schon erwähnt müssen sie in einen Container. Avi und Quicktime sind aber erstens nicht Open Source und zweitens gar nicht in der Lage einen Ogg Vorbis Audiofile aufzunehmen. Die Lösung für beides ist ein neues Container Format: OGM (Ogg Media).

Wichtig: Dieses Container Format ist noch längst nicht so verbreitet wie Avi. Daher muss man darauf achten das man auch einen Software Videoplayer hat der dieses Format beherrscht. Windows User brauchen dafür "OggDS Direct Show". Linuxuser können (sofern Ogg installiert ist) MPlayer, Xine oder VLC verwenden. Das sind die gängigen Player die ohnehin fast jeder hat. Insofern ist OGM also kein Problem für Linux.


Im folgenden werde ich beschreiben wie man solche OGM Files erstellt. Dabei muss der Ton als Ogg und das Video als Xvid encodet werden. Dies habe ich bereits in anderen HowTos erklärt und möchte das in dieser HowTo nicht wiederholen. Daher gebe ich die Links an und setze vorraus das ihr diese HowTos mal gelesen habt.

Transcode: http://www.linuxforen.de/forums/showthread.php?s=&threadid=50974
MEncoder: http://www.linuxforen.de/forums/showthread.php?s=&threadid=54882
Ogg encoden: http://www.linuxforen.de/forums/showthread.php?s=&threadid=60301
FFMpeg: http://www.linuxforen.de/forums/showthread.php?s=&threadid=53635

hunter
27.02.03, 08:53
Hardware:

Um ein OGM zu erstellen reicht ein einfacher PC aus. Um allerdings Video und Audio vorher encoden zu können ist ein leistungsstarker Rechner von Vorteil. Ich habe dies bereits in den angegebenen HowTos näher erläutert.


Software:

Ihr solltet die komplette Palette an Decodern, Encodern und Programmen haben um vernünftig arbeiten zu können.

1. Ogg, Vorbis, Vorbistools: http://www.linuxforen.de/forums/showthread.php?s=&threadid=60301
2. Xvid und MEncoder: http://www.linuxforen.de/forums/showthread.php?s=&threadid=54882
3. Transcode: http://www.linuxforen.de/forums/showthread.php?s=&threadid=50974
4. FFMpeg http://www.linuxforen.de/forums/showthread.php?s=&threadid=53635

5. OGM-Tools: http://freshmeat.net/projects/ogmtools

Die Punkte 1 - 4 werden ja in den HowTos alle erklärt. Daher verweise ich auf die Installationsanleitungen in diesen HowTos. Nur der 5. Punkt ist neu und wird hier erläutert:

- Ladet euch den aktuellen Quellcode runter ogmtools-x.abc.tar.bz2
- Entpackt diese Datei: tar vxfj ogmtools-x.abc.tar.bz2
- Wechselt in das Verzeichnis: cd ogmtools*
- ./autogen.sh (NUR falls ./configure nicht existiert !!!)
- ./configure
- make
- make install bzw. checkinstall [als Root]


Damit stehen euch nun folgende Programme zur Verfügung:

ogminfo -> Gibt Infos zu einem OGM File aus
ogmdemux -> Demultiplext ein OGM in Ton und Bild
ogmmerge -> Erzeugt ein OGM aus verschiedenen Quellen

Im folgenden gehe ich nun kurz auf die beiden ersten Programme ein und etwas ausführlicher auf das letzte.

hunter
27.02.03, 08:55
Vorbemerkung: Ich beschreibe hier nur die wichtigsten Befehle, jedoch nicht alle. Wer weitergehendes Interesse hat, sollte sich die Hilfen auf der Homepage anschauen. Diese umfassen neben den Sachen die ich hier anspreche auch ein paar speziellere Sachen.

1. ogminfo

Grundsyntax: ogminfo [optionen] name.ogm


2. ogmdemux

ogmdemux [optionen] name.ogm

[optionen]:

-o -> Basisname für die Outputfiles (Rest wird automatisch ergänzt)
-a # -> Bestimmten Audiostream extrahieren (siehe ogminfo)
-d # -> Bestimmten Videostream extrahieren (siehe ogminfo)
-na -> Audio nicht extrahieren
-nv -> Video nicht extrahieren


3. ogmmerge

ogmmerge liest Video und Audio aus (verscheidnen) Quellen aus und multiplext sie zu einem .ogm File. Ihr braucht also zunächst einmal einen Video File den ihr mit Transcode, MEncoder, Avifile oder sowas encodet habt. Vorzugsweise natürlich mit dem Xvid Codec. Das ganze wird in einem Avi File abgelegt. Desweiteren müsst ihr auch noch den Ton encoden. Dies könnt ihr z.B. mit ffmpeg, MEncoder + Oggenc oder Transcode machen.

Beispiele (ich setze die anderen HowTos vorraus !!!):

1. Ein DivX Video mit Mp3 Audio:

Video: transcode -i Eingangsfile -x ffmpeg,null -o Ausgangsfile.avi -V -y xvid,null -w 900
Audio: transcode -i Eingangsfile -x null,mp3 -m Ausgangsfile.ogg -V -y null,ogg -E 48000 -b 128

2. Ein Mpeg mit Mp2 Audio:

Video: mencoder Eingang.mpg -ovc xvid -oac null -o Ausgang.avi
Audio:
mplayer -vo null -ao pcm -aofile audiodump.wav Eingang.mpg
oggenc audiodump.wav -o Ausgang.ogg -b 128 -m 128 -M 128
rm audiodump.wav

3. Ein Avi mit Xvid und Mp3 Audio

Video: nicht notwendig
Audio: ffmpeg -i Eingang.avi -ab 128 -ar 48000 -vn -acodec vorbis -sameq Ausgang.ogg

Anmerkung: Das waren jetzt nur ein paar Beispiele, keine Anleitung !!!


Nun habt ihr also einen .avi File mit dem Video und einen .ogg File mit dem Audio. Um nun beides in einen .ogm File zu bekommen wird ogmmerge benutzt:

Grundsyntax: ogmmerge [globale Optionen] -o Ausgang [Optionen] <Datei1> [[Optionen] <Datei2> ...]

globale Optionen:

-v -> verbose -> Er soll Informationen anzeigen
-q -> quiet -> Er soll keine Informationen anzeigen

-o Ausgang -> Basisname für den .ogm File

Optionen:

-A -> Audio in diesem File ignorieren
-D -> Video in diesem File ignorieren

-s # -> Verschiebung des Audios um # (# > 0 => Verschiebung nach hinten ; # < 0 Verschiebung nach vorne), Einheit: ms

-r start-ende -> Startzeit und Endzeit ; Format: HH:MM:SS.mmm (Stunden:Minuten:Sekunden.Millisekunden)


Nun ein paar Beispiele:

Video: Eingang.avi (mit Xvid)
Audio: Eingang.ogg (mit Ogg Vorbis)

ogmmerge -o Film.ogm -A Eingang.avi Eingang.ogg
-> Erzeugt den .ogm File aus dem Avi und dem Ogg. Eventueller Ton im Avi wird ignoriert.

ogmmerge -o Film.ogm -A Eingang.avi -s 200 Eingang.ogg
-> Verschiebt das Audio um 200 ms nach hinten


Damit habt ihr nun einen .ogm File der komplett auf Open Source beruht: OGM, Xvid und Ogg Vorbis

hunter
01.03.03, 09:21
OGM-Tools enthält noch zwei weitere Tools. Diese sind für das zusammenfügen und splitten von OGM Files da: ogmcat und ogmsplit

4. ogmcat

Grundsyntax: ogmcat [Optionen] -o Ausgang.ogm Eingang1.ogm Eingang2.ogm ...

Beispiel: ogmcat -o Film.ogm Teil1.ogm Teil2.ogm


5. ogmsplit

Grundsyntax: ogmsplit [Optionen] Eingang.ogm

Optionen:

-o Ausgang -> Erzeugt Ausgang--000001.ogm, Ausgang--000002.ogm usw.
ohne -o -> Eingang-000001.ogm, Eingang-000001.ogm usw.

-s # -> Zerlegung des Films in Files mit der Größe # (in MB)
-s #B -> Zerlegung des Films in Files mit der Größe # (in Byte)

-t # -> Trennt nach der angegebenen Zeitmarke; Format: HH:MM:SS.mmm oder in Sekunden: SSS

-n # -> Limit für Zahl der erzeugten Files (für -s und -t)

Beispiele:

ogmsplit -o Ausgang.ogm -s 700 Eingang.ogm -> Trennt nach je 700 MB und nennt die Files Ausgang-000001.ogm usw.
ogmsplit -s 700 Eingang.ogm -> Trennt jeweils nach 700 MB
ogmsplit -t 600 Eingang.ogm -> Trennt jeweils nach 10 Minuten
ogmsplit -t 0:10:00.000 Eingang.ogm -> Trennt einmal nach 10 Minuten
ogmsplit -t 600 -n 2 Eingang.ogm -> Trennt ebenfalls nur einmal nach 10 Minuten

hunter
01.03.03, 16:54
Mpeg nach OGM

/usr/bin/mpg2ogm

#!/bin/sh
transcode -i $1 -x mpeg2,null -o zwischenfile.avi -V -y xvid,null -w $3
avifix -i zwischenfile.avi -F XVID
transcode -i $1 -x null,mp3 -m zwischenfile.ogg -V -y null,ogg -E 48000 -b 96
ogmmerge -o $2.ogm zwischenfile.avi zwischenfile.ogg
rm -f zwischenfile.avi
rm -f zwischenfile.ogg

Benutzung: mpg2ogm Eingang.mpg Ausgang Videobitrate
Beispiel: mpg2ogm Film.mpg Film 600


Avi (DivX) nach OGM

/usr/bin/avi2ogm

#!/bin/sh
transcode -i $1 -x ffmpeg,null -o zwischenfile.avi -V -y xvid,null -w $3
avifix -i zwischenfile.avi -F XVID
transcode -i $1 -x null,mp3 -m zwischenfile.ogg -V -y null,ogg -E 48000 -b 96
ogmmerge -o $2.ogm zwischenfile.avi zwischenfile.ogg
rm -f zwischenfile.avi
rm -f zwischenfile.ogg

Benutzung: avi2ogm Eingang.avi Ausgang Videobitrate
Beispiel: avi2ogm Film.avi Film 600

hunter
07.03.03, 18:13
/usr/bin/vob2ogm

#!/bin/sh
mencoder $1 -nosound -ovc xvid -xvidencopts bitrate=$3:pass=1 -vop scale=640:480 -o /dev/null
mencoder $1 -nosound -ovc xvid -xvidencopts bitrate=$3:pass=2 -vop scale=640:480 -o zwischenfile.avi
rm -f divx2pass.log
mplayer -vo null -ao pcm -aofile audiodump.wav $1 -aid $4
oggenc audiodump.wav -o zwischenfile.ogg -b 96 -m 96 -M 96
rm -f audiodump.wav
ogmmerge -o "$2.ogm" -A zwischenfile.avi zwischenfile.ogg
rm -f zwischenfile.avi
rm -f zwischenfile.ogg


Benutzung:

1. Zunächst müsst ihr die DVD analysieren. Gebt in eine X-Konsole ein: "mplayer -dvd 1 -v" und beendet den Film dann gleich wieder. In der X-Konsole könnt ihr Informationen über Titel, Chapter und Sprachen ablesen.

2. Nun rippt ihr die DVD: tccat -i /dev/dvd -T Titel[,Chapter x-Chapter y] > Ausgang.vob

3. Das Script benutzen: vob2ogm Ausgang.vob Titel VBR SprachID

Beispiel: vob2ogm Ausgang.vob Film 1000 128


Bemerkungen

Im Gegensatz zu Avis oder Mpegs hat eine DVD absolute Top Qualität. Daher ist hier ein 3 Pass Encoding angebracht. Im ersten Schritt wird der Film analysiert. Im zweiten wird er encodet und im dritten wird der Sound encodet.

hunter
07.03.03, 19:01
Sollte man ein besonders gutes Avi haben, dann kann es interessant sein das auch mit 3 Pass Encoding ins OGM Format zu überführen:

/usr/bin/avi2ogmhq

#!/bin/sh
mencoder $1 -ovc xvid -xvidencopts bitrate=$3:pass=1 -nosound -o /dev/null
mencoder $1 -ovc xvid -xvidencopts bitrate=$3:pass=2 -nosound -o zwischenfile.avi
rm -f divx2pass.log
mplayer -vo null -ao pcm -aofile audiodump.wav $1
oggenc audiodump.wav -o zwischenfile.ogg -b 96 -m 96 -M 96
rm -f audiodump.wav
ogmmerge -o $2.ogm zwischenfile.avi zwischenfile.ogg
rm -f zwischenfile.avi
rm -f zwischenfile.ogg


Benutzung: avi2ogmhq Eingang.avi Ausgang Bitrate

Beispiel: avi2ogmhq Film.avi Film 1000


Etwas schnellere Methode:

Hier kann Transcode (entsprechender Support vorrausgesetzt (libdvdread, Ogg Support, liba52) zum Einsatz kommen:

#!/bin/sh
mencoder $1 -ovc xvid -xvidencopts bitrate=$3:pass=1 -nosound -o /dev/null
mencoder $1 -ovc xvid -xvidencopts bitrate=$3:pass=2 -nosound -o zwischenfile.avi
rm -f divx2pass.log
transcode -i $1 -x null,mp3 -m zwischenfile.ogg -V -y null,ogg -E 48000 -b 96
ogmmerge -o $2.ogm zwischenfile.avi zwischenfile.ogg
rm -f zwischenfile.avi
rm -f zwischenfile.ogg


Mpeg2Ogm HQ

Ebenso kann man Mpeg Files zu OGM encoden und dabei 3 Pass Encoding verwenden um die Qualität zu maximieren.

/usr/bin/mpg2ogmhq

#!/bin/sh
mencoder $1 -ovc xvid -xvidencopts bitrate=$3:pass=1 -vop scale=640:480 -nosound -o /dev/null
mencoder $1 -ovc xvid -xvidencopts bitrate=$3:pass=2 -vop scale=640:480 -nosound -o zwischenfile.avi
rm -f divx2pass.log
mplayer -vo null -ao pcm -aofile audiodump.wav $1
oggenc audiodump.wav -o zwischenfile.ogg -b 96 -m 96 -M 96
rm -f audiodump.wav
ogmmerge -o $2.ogm zwischenfile.avi zwischenfile.ogg
rm -f zwischenfile.avi
rm -f zwischenfile.ogg

Benutzung: mpg2ogmhq Eingang.mpg Ausgang 1000

Beispiel: (S)VCD -> OGM

rippen: vcdxrip -p --cdrom-device=/dev/xyz && mv avseq01.mpg Name.mpg
neu Encoden: mpg2ogmhq Name.mpg Ausgang 1000


vcd2ogm

Aus dem Beispiel lässt sich nun leicht ein neues Script herleiten:

/usr/bin/vcd2ogm

#!/bin/sh
vcdxrip -p --cdrom-device=/dev/xyz #<- Ersetzen !
mencoder avseq01.mpg -ovc xvid -xvidencopts bitrate=$2:pass=1 -vop scale=640:480 -nosound -o /dev/null
mencoder avseq01.mpg -ovc xvid -xvidencopts bitrate=$2:pass=2 -vop scale=640:480 -nosound -o zwischenfile.avi
rm -f divx2pass.log
mplayer -vo null -ao pcm -aofile audiodump.wav avseq01.mpg
rm -f avseq01.mpg
oggenc audiodump.wav -o zwischenfile.ogg -b 96 -m 96 -M 96
rm -f audiodump.wav
ogmmerge -o $1.ogm zwischenfile.avi zwischenfile.ogg
rm -f zwischenfile.avi
rm -f zwischenfile.ogg

Benutzung: vcd2ogm Ausgang 1000

hunter
11.03.03, 21:07
Das ogmencoder Script nimmt euch einiges an Arbeit ab wenn ihr eine DVD rippen und zu Xvid Files encoden wollt. Die vorgehensweise ist aber meinem vob2ogm Script sehr ähnlich. Will man z.B. verschiedene Titel zu Xvids encoden dann kann meine Vorgehensweise die bessere sein. Will man dagegen einfach nur einen Film von DVD zu Xvid encoden dann ist ogmencoder sicher einfacher.

Vorraussetzungen

Um es benutzen zu können wird vorrausgesetzt das mplayer/mencoder mit xvid Support installiert ist. Zudem benötigt ihr noch Transcode mit AC3 und Ogg Support. Darüber hinaus auch noch die libdvdread und natürlich die OGM-Tools.

Da es ein Perl Script ist benötigt ihr auch Perl, was in der Regel aber immer installiert sein sollte.


Download und Installation

Ladet euch dann das Script hier runter: http://freshmeat.net/projects/ogmencoder/

Entpacken: tar vxfz ogmencoder*.tar.gz
Wechseln: cd ogmencoder*

Nun Root werden: su -> Root Passwort

Installieren: cp ogmencoder /usr/bin/ && cp ogmencoder.1 /usr/share/man/man1

Dann: exit


Benutzung

Wenn /dev/dvd auf das DVD Device gelinkt ist, dann kann "ogmencoder -info" die DVD analysieren und zeigt euch dann an was er gefunden hat. Sollte er euch fragen ob er encoden soll, dann wählt ihr "N".

Das Script nimmt euch eine Menge Arbeit ab. Ihr müsst nicht viel rechnen oder abschätzen. Aber ihr solltet planen was ihr als Ergebnis von der ganzen Sache erwartet (wieviele CDs, 3 Pass Encoding, welche Sprachen etc.).

Ihr solltet euch dann mal die Manpage anschauen: man ogmencoder

Folgende Optionen sind interessant:

-i # -> einen .vob als Eingang benutzen (sonst von DVD lesen)
-T # -> Einen bestimmten Titel auswählen (kein DVD analysieren)
-o #.ogm -> Den finalen Outputnamen wählen (.ogm anhängen)
-numcd # -> Anzahl der CDs wählen (entfällt bei kleinern Files, wo besser die Bitrate gewählt wird)
-try -> encodet ein paar Testsekunden (bei kleineren Bitraten zu empfehlen !)

-m # -> entweder "bighd" (erst auf auf Platte rippen) oder "direct" (direkt von DVD encoden)
-bitvideo # -> eine eigene Bitrate wählen (schaltet -numcd aus)
-double -> 3 Pass Encoding (empfohlen !!)
-force -> Bitrate nicht prüfen (nur wenn man eine Bitrate von weniger als 700 wählt)
-a # -> Erste Sprache (aus -info Tabelle ablesen (z.b. "de")
-a2 # -> Zweite Sprache (aus -info Tabelle ablesen (z.b. "en")


Beispiele

DVD auf 2 CDs encoden: ogmencoder -o Ausgang.ogm -numcd 2 -m direct -double -a de

DVD Titel mit manueller Bitrate: ogmencoder -o Ausgang.ogm -T 1 -m direct -bitvideo 900 -double -a de

Titel 1 und Chapter 2-3, manuelle Bitrate und zwei Sprachen (benutzt tcmplex):

tccat -i /dev/dvd -T 1,2-3 > Ausgang.vob
ogmencoder -i Ausgang.vob -o Ausgang.ogm -bitvideo 1000 -double -a de -a2 en

hunter
15.03.03, 18:56
Es gibt im Grunde zwei Arten von DVD Inhalten. Einmal die wo neben etwas Bonus Material ein kompletter Spielfilm drauf ist und einmal die wo mehrere kleine Filme drauf sind. Das sind z.B. Serien DVDs oder auch Episoden einer Anime DVD die man lieber zwischendurch auf dem Rechner ansehen möchte. In diesem Fall empfiehlt sich dann ein Script in dem man alle Anweisungen hintereinander schaltet und den Rechner alles hintereinander abarbeiten lässt (Stapel Verarbeitung).


1. Planung

Wenn man sich vorher Zeit nimmt um alles zu berechnen und abzuschätzen kann man sich Fehleversuche sparen und das Ergebnis optimieren:

Im folgenden gehe ich von einem Beispiel aus das euch das Prinziep klar machen soll:

- 2 Anime DVDs mit jeweils 3 Episoden
- Länge einer Episode (ca. 30 Minuten, mit Abspann; ca. 27 ohne)

1.1 DVD genauer betrachten

Der Abspann der Episoden bringt nichts und ist in einem eigenen Kapitel untergebracht (in diesem Fall). Das brauchen wir also nicht und lassen es weg. Wir nehmen also nur 4 Kapitel was ca. 27 Minuten pro Episode sind.

Mit "mplayer -dvd 1 -v" ermitteln wir die Sprach ID für Deutsch, was hier 129 ist.


1.2 VBR berechnen

Zunächst rechnen wir mal in Sekunden und kB um:

-> 700 MB * 1024 = 716800 kB
-> 27 Minuten * 60 = 1620 Sekunden

Nun rechen wir den Platzbedarf für das Ogg aus (pro Episode):

Audiobitrate: 96 kBit/s / 8 = 12 kB/s

-> 1620 * 12 = 19440 kB ~ 18.9 MB

Nun kann man das jeweils abziehen und die Bitrate nach folgender Formel berechen:

[(716800 - X * Audio_Platzbedarf) / X * Einzel_Zeit ] * 8 = VBR (X = Anzahl der Episoden pro CD)

Für 1 Episode ergibt sich : [(716800-19440)/1620]*8 = 3443 kBit/s
Für 2 Episoden ergibt sich: [(716800-2*19440)/2*1620]*8 = 1673 kBit/s
Für 3 Episoden ergibt sich: [(716800-3*19440)/3*1620]*8 = 1083 kBit/s
Für 6 Episoden ergibt sich: [(716800-6*19440)/6*1620]*8 = 493 kBit/s

4 und 5 macht keinen Sinn weil dann auf der 2. CD massig Platz frei bliebe was eine unerwünschte Verschwendung wäre.
Bleiben also folgende Möglichkeiten: 1,1,1,1,1,1 ; 2,2,2 ; 3,3 ; 6

Mit etwas Erfahrung kann man zwei Fälle sofort streichen:

3443 kBit/s ist höher als eine SVCD, welche unkompremiert ist -> Die Qualität wird dadurch nicht besser
493 kBit/s ist sehr klein und wird ein sehr schlechtes Bild liefern

Bleiben noch zwei Möglichkeiten:

1673 kBit/s liefert erfahrungsgemäß bei Singlepass Encoding eine sehr gute Qualität
1083 kBit/s liefert erfahrungsgemäß bei Singlepass Encoding eine schlechte Qualität, ABER bei 3 Pass Encoding eine sehr gute Qualität

Merkregeln:
- Single Pass Encoding (640x480) -> um 1600 - 1800 kBit/s
- 3 Pass Encding (bei 640 x 480) -> um 700 - 1000 kBit/s

=> Wir entscheiden uns also für längere Rechenzeit und dafür kleinere Files (3 pro CD) -> VBR = 1000 kBit/s


2. Schreiben des Scriptes

Wir wollen den Rechner nach der Planung und dem Start des geschriebenen Scriptes gerne völlig sich selbst überlassen. Dabei möchten wir aber auch nicht das er am Ende haufenweise Platz für alle möglichen Datein verschwendet. Also Rippen wir zunächst die ersten drei Episoden (DVD 1) auf die Platte und arbeiten dann damit. Dann wechselt man die DVD und holt die Daten für Episoden 4 - 6 später nach.

#!/bin/sh

cd /Verzeichnis #kann frei gewählt werden

tccat -i /dev/dvd -T 1,1-4 > /Verzeichnis/vob/Episode1.vob #/vob/ anlegen macht Sinn
tccat -i /dev/dvd -T 2,1-4 > /Verzeichnis/vob/Episode2.vob
tccat -i /dev/dvd -T 3,1-4 > /Verzeichnis/vob/Episode3.vob

#Ist das nachher dann erledigt müsst ihr die DVD wechseln (ihr habt dazu sicher 2 - 3 Stunden Zeit)

#Episode 1 encoden
mencoder vob/Episode1.vob -nosound -ovc xvid -xvidencopts bitrate=1000:pass=1 -vop scale=640:480 -o /dev/null
mencoder vob/Episode1.vob -nosound -ovc xvid -xvidencopts bitrate=1000:pass=2 -vop scale=640:480 -o zwischenfile.avi
rm -f divx2pass.log
mplayer -vo null -ao pcm -aofile audiodump.wav vob/Episode1.vob -aid 129
oggenc audiodump.wav -o zwischenfile.ogg -b 96 -m 96 -M 96
rm -f audiodump.wav
ogmmerge -o "Serie - Episode 1.ogm" -A zwischenfile.avi zwischenfile.ogg
rm -f zwischenfile.avi
rm -f zwischenfile.ogg
rm -f /Verzeichnis/vob/Episode1.vob

#Episode 2 encoden
mencoder vob/Episode2.vob -nosound -ovc xvid -xvidencopts bitrate=1000:pass=1 -vop scale=640:480 -o /dev/null
mencoder vob/Episode2.vob -nosound -ovc xvid -xvidencopts bitrate=1000:pass=2 -vop scale=640:480 -o zwischenfile.avi
rm -f divx2pass.log
mplayer -vo null -ao pcm -aofile audiodump.wav vob/Episode2.vob -aid 129
oggenc audiodump.wav -o zwischenfile.ogg -b 96 -m 96 -M 96
rm -f audiodump.wav
ogmmerge -o "Serie - Episode 2.ogm" -A zwischenfile.avi zwischenfile.ogg
rm -f zwischenfile.avi
rm -f zwischenfile.ogg
rm -f /Verzeichnis/vob/Episode2.vob

#Episode 3 encoden
mencoder vob/Episode3.vob -nosound -ovc xvid -xvidencopts bitrate=1000:pass=1 -vop scale=640:480 -o /dev/null
mencoder vob/Episode3.vob -nosound -ovc xvid -xvidencopts bitrate=1000:pass=2 -vop scale=640:480 -o zwischenfile.avi
rm -f divx2pass.log
mplayer -vo null -ao pcm -aofile audiodump.wav vob/Episode3.vob -aid 129
oggenc audiodump.wav -o zwischenfile.ogg -b 96 -m 96 -M 96
rm -f audiodump.wav
ogmmerge -o "Serie - Episode 3.ogm" -A zwischenfile.avi zwischenfile.ogg
rm -f zwischenfile.avi
rm -f zwischenfile.ogg
rm -f /Verzeichnis/vob/Episode3.vob

#Episode 4 rippen(!) und encoden
tccat -i /dev/dvd -T 1,1-4 > /Verzeichnis/vob/Episode4.vob
mencoder vob/Episode4.vob -nosound -ovc xvid -xvidencopts bitrate=1000:pass=1 -vop scale=640:480 -o /dev/null
mencoder vob/Episode4.vob -nosound -ovc xvid -xvidencopts bitrate=1000:pass=2 -vop scale=640:480 -o zwischenfile.avi
rm -f divx2pass.log
mplayer -vo null -ao pcm -aofile audiodump.wav vob/Episode4.vob -aid 129
oggenc audiodump.wav -o zwischenfile.ogg -b 96 -m 96 -M 96
rm -f audiodump.wav
ogmmerge -o "Serie - Episode 4.ogm" -A zwischenfile.avi zwischenfile.ogg
rm -f zwischenfile.avi
rm -f zwischenfile.ogg
rm -f /Verzeichnis/vob/Episode4.vob

#Episode 5 rippen(!) und encoden
tccat -i /dev/dvd -T 2,1-4 > /Verzeichnis/vob/Episode5.vob
mencoder vob/Episode5.vob -nosound -ovc xvid -xvidencopts bitrate=1000:pass=1 -vop scale=640:480 -o /dev/null
mencoder vob/Episode5.vob -nosound -ovc xvid -xvidencopts bitrate=1000:pass=2 -vop scale=640:480 -o zwischenfile.avi
rm -f divx2pass.log
mplayer -vo null -ao pcm -aofile audiodump.wav vob/Episode5.vob -aid 129
oggenc audiodump.wav -o zwischenfile.ogg -b 96 -m 96 -M 96
rm -f audiodump.wav
ogmmerge -o "Serie - Episode 5.ogm" -A zwischenfile.avi zwischenfile.ogg
rm -f zwischenfile.avi
rm -f zwischenfile.ogg
rm -f /Verzeichnis/vob/Episode5.vob

#Episode 6 rippen(!) und encoden
tccat -i /dev/dvd -T 3,1-4 > /Verzeichnis/vob/Episode6.vob
mencoder vob/Episode6.vob -nosound -ovc xvid -xvidencopts bitrate=1000:pass=1 -vop scale=640:480 -o /dev/null
mencoder vob/Episode6.vob -nosound -ovc xvid -xvidencopts bitrate=1000:pass=2 -vop scale=640:480 -o zwischenfile.avi
rm -f divx2pass.log
mplayer -vo null -ao pcm -aofile audiodump.wav vob/Episode6.vob -aid 129
oggenc audiodump.wav -o zwischenfile.ogg -b 96 -m 96 -M 96
rm -f audiodump.wav
ogmmerge -o "Serie - Episode 6.ogm" -A zwischenfile.avi zwischenfile.ogg
rm -f zwischenfile.avi
rm -f zwischenfile.ogg
rm -f /Verzeichnis/vob/Episode6.vob


3. Benutzen des Scriptes

Am Ende speichert ihr dieses Script z.B. als /usr/bin/dvd2ogm ab und macht es ausführbar (chmod 777 /usr/bin/dvd2ogm). Danach wechselt ihr in die reine Shell (Strg + Alt + F1) und meldet euch als User an.

Dann gebt ihr ein: dvd2ogm

Das Script wird mit seiner Arbeit beginnen und ihr könnt es sich selbst überlassen. Nach 10 - 20 Minuten solltet ihr dann mal schaun ob die 1. DVD inzwischen gerippt wurde und ob er nun beim encoden ist. Falls ja, wechselt ihr die DVD aus und könnt das Script bis ganz zum Ende durchlaufen lassen. Nach einigen Stunden (in denen ihr gar nichts mehr dazu tun müsst !) solltet ihr folgende Files haben:

Serie - Episode 1.ogm
Serie - Episode 2.ogm
Serie - Episode 3.ogm
Serie - Episode 4.ogm
Serie - Episode 5.ogm
Serie - Episode 6.ogm

Jede davon sollte ca. 230 MB haben so das 3 Files auf jeweils eine CD passen. Ein abspielen mit Xine oder MPlayer sollte ohne Probleme funktionieren.


4. Schlussbemerkungen

Das Script ist exakt das gleiche wie ich es auch vorher schon beschrieben habe. Nur ordnen wir es hier geschickt in einem Script an damit wir nach Planung und Script Erzeugung die Sache sich selbst überlassen können.

Solltet ihr einen Fehler gemacht haben bei dem er abbricht, dann korregiert den Fehler. Alle Zeilen die schon fertig sind verseht ihr mit einer # davor. Danach startet ihr das Script neu und er wird da weiter machen wo er aufgehört habt.