Linux DVD erstellen

Im folgenden werde ich Linux DVD Authoring betreiben. Dabei ist das Ziel eine einfache Video-DVD zu haben, ohne Menus oder anderen Schnickschnack. Ich werde immer wieder von Videodaten sprechen und meine damit sowohl die Video- als auch die Audiospur.

Folgende Programme werden benötigt:

  • FFmpeg falls Videodateien noch in MPEG2 umkodiert werden müssen.
  • mplex falls die Videodaten noch gemultiplexed werden müssen.
  • VDRsync benutze ich, um die Aufnahmen meines VDR in einen brauchbaren Stream zu konvertieren.
  • dvdauthor zum erzeugen der DVD-Strukturen.
  • dvd+rw-tools zum brennen der Daten auf DVD-Medien.
  • cdrtools werden von dvd-rw-tools benötigt.

Videodaten aufbereiten

Zum Authoring mit dvdauthor müssen die Videodaten als DVD-kompatibler MPEG2 Stream vorliegen.

Kodieren mit FFmpeg

FFmpeg ist ein mächtiges Programm um alle möglichen Videoformate zu enkodieren oder transkodieren. Um einen DVD-kompatiblen Stream zu erhalten, muss FFmpeg wie folgt aufgerufen werden:

ffmpeg -i <input_file> -target pal-dvd <out_file>
Man kann die Ausgabe noch etwas verfeinern, wenn man einen der folgenden Parameter mit angibt:

  • -b <bitrate>: Bitrate des Videostreams. Gerade wenn man von schlechten Quelldateien kodiert ist es oftmals nicht notwendig eine hohe Bitrate zu verwenden, da die Qualität der Quelle bereits schlecht ist. Dann kann man auch bei der MPEG-Kodierung eine niedrigere Bitrate wählen und so Speicherplatz sparen.
  • -vcodec <codec>: Bestimmung des zu verwendenden Videocodecs. Da bereits durch -target pal-dvd eine Schablone zur DVD-kompatiblen Ausgabe gewählt wurde, ist dieser Parameter nur sinnvoll, wenn man sich sicher ist, dass in der Quelldatei der Videostream bereits DVD-kompativbel ist. Durch die Angabe von -vcodec copy wird nur der Audiostream neu kodiert.
  • -ab <bitrate>: Das selbe gilt auch für die Audiobitrate.
  • -acodec <codec>: Zusätzlich kann man noch den Codec für den Audiostream wählen. Unter Umständen möchte man zum Beispiel einen AC3-Stream in mpeg2 umwandeln: -acodec mp2.

Für <out_file> kann man sich einen Dateinamen ausdenken. Man sollte aber die Dateiendung .vob oder .mpg wählen.

Multiplexen mit mplex

Manchmal hat man Video- und Audiostreams in seperaten Dateien vorliegen. Zur Weiterverarbeitung durch dvdauthor müssen diese erst eine Datei geschrieben werden. Diesen Vorgang nennt man multiplexen. Ich benutzer dafür mplex:

mplex -f 9 <input_files>...

Der Parameter -f 9 sorgt dafür, dass mplex eine DVD-kompatible Datei erstellt. Für <input_files> listet man die Videodatei und alle Audiodateien auf, die gemultiplexed werden sollen. Mplex erkennt automatisch Vido- und Audiostreams.

DVD Authoring

An dieser Stelle geht es darum die Videodateien auf eine Video-DVD zu brennen.

Konvertieren von VDR-Aufnahmen

Für die Konvertierung meiner VDR-Aufnahmen benutzer ich VDRsync. Das Programm ist genial, da es die Schnittmarken, die man in VDR gesetzt hat, bei der Konvertierung berücksichtigt. Es gibt auch ein VDRsync-GUI, mit dem man die Aufnahmen auf dem VDR schneiden kann. Das GUI hat auch eine DVD-Erzeugungsfunktion, mit Menus und Titeln. Das hat aber bei mir nicht richtig funktioniert, außerdem brauche ich keine Menus oder Titel.

Ich habe das /video Verzeichnis übers Netzwerk gemounted (NFS oder SMB) und mit VDR Schnittmarken in der Aufnahme gesetzt. Mit folgendem Befehl wird die Aufnahme direkt in eine DVD-Struktur konvertiert. unter Berücksichtigung der gesetzten Schnittmarken:

vdrsync.pl /video/Aufnahme/Datum/ \
-cut -use-pipe -master-dvd \
-o /pfad/wo/gespeichert/wird \
-basename Dateiname

Wer möchte, kann noch den Parameter -mkiso anhängen, dann wird direkt ein DVD-ISO erzeugt. Da ich aber on-the-fly brenne, verzichte ich darauf.

Wer wissen möchte, was die einzelnen Parameter bedeuten, sollte vdrconvert.pl ohne Parameter aufrufen, dann wird eine Hilfeseite ausgegeben.

Mit dvdauthor

Mit dvdauthor ist es möglich mehrere Videdateien zu einer DVD hinzuzufügen. Zuerst sollte man sich einen Ordner erstellen, in dem die DVD-Struktur erzeugt werden soll:

mkdir meineDVD

Dann fügt man alle Videodateien hinzu, die auf die DVD sollen:

dvdauthor -o meineDVD/ video1.vob
dvdauthor -o meineDVD/ video2.vob
...

Dann erzeugt man den TOC-Eintrag (TableOfContents) der DVD:

dvdauthor -o meineDVD/ -T

Nun befindet sich im Ordner meineDVD/ eine fertige DVD-Struktur, die man auf DVD brennen kann.

DVD brennen

Zum brennen der DVD muss zuerst mit mkisofs ein Image der DVD erstellt werden. Mittlerweile kann growisofs dies aber auch on-the-fly, indem es selbst mkisofs aufruft.

Image erstellen mit mkisofs

Mit folgendem Befehl kann man ein ISO der DVD in meineDVD/ erzeugen:

mkisofs -dvd-video -o ./meineDVD.img ./meineDVD/

Das Image kann man brennen, lokal mounten oder z.B. mit Linkmplayer direkt abspielen. Die Methode eignet sich also gut zum testen der erzeugten DVD.

Brennen mit growisofs

Mittels growisofs kann man das durch mkisofs erzeugte Image auf ein DVD-Medium brennen:

growisofs -dvd-compat -Z /dev/dvd=./meineDVD.img

Unter Debian muß ich allerdings entweder /dev/dvdrw oder /dev/dvdram als Gerät angeben, je nachdem ob ich ein DVD+/-R(W) oder ein DVD-RAM Medium im Brenner habe.

Es gibt auch die Möglichkeit das ISO-Erstellen zu überspringen. Mit dem Befehl

growisofs -dvd-compat -Z /dev/dvd -dvd-video \
 -V MeinTitel ./meineDVD/

ruft growisofs mkisofs on-the-fly auf, und brennt die Daten auf ein DVD-Medium. Bei der Angabe des Gerätes gilt genau dasselbe. Der Parameter -V bestimmt den Titel der DVD, den sollte man natürlich durch seinen eigenen ersetzen.

Noch etwas zu den Geschwindigkeiten: on-the-fly brennen könnte etwas langsamer sein, als ein ISO zu brennen. Allerdings ist es bei mir immer noch schneller, als die Zeit, die ich benötige zuerst das ISO zu erstellen und es dann zu brennen.

Hilfreiche Seiten

  1. Gentoo-Wiki: HOWTO create a DVD

Tags:

Ein Kommentar

  • Matthias

    Sehr kurzer und einfacher, daher guter Bericht, wie man mit Linux eine DVD erstellen kann. Das einzige was ich vermisse: welche Auflösung (z.B. 720×576) für DVD`s zulässig sind und wie man das Seitenverhältnis (4:3 oder 16/9) einstellt.

Eigenen Senf dazu geben