© 2004 - 2006 Hubertus Sandmann


Version: 0.0.16
Stand: 17.04.2006

nach untenEinleitung
nach untenVoraussetzungen
nach untenProjectX
nach untenVDRConvert
nach untenEinstellungen
nach untenBedienung
nach untenFehlersuche

Einleitung

nach oben 

Zur einfachen Konvertierung von VDR-Aufnahmen zum Brennen auf DVD-Rohlinge wurde eine Sammlung von ausgefeilten Skripten unter der Bezeichnung VDRConvert entwickelt und vorgestellt auf VDR-Portal. Dieses Tool ist eine Weiterentwicklung bisheriger Programme wie vdr2dvd, tosvcd und vdr2divx zur Umwandlung in die Formate Video-DVD, (S)VCD sowie DivX. Der besondere Clou hierbei ist, dass VDRConvert all diese Möglichkeiten zusammenfasst und die dazu erforderlichen Schritte sich komplett aus dem OSD-Menü des VDR heraus per Fernbedienung erledigen lassen. Ich befasse mich hier lediglich mit der Erstellung von Video-DVDs, da ich es bei den aktuellen Preisen für DVD-Brenner für die einzig zeitgemäße Art der Archivierung von VDR-Aufnahmen halte. Dies ist vollkommen ohne Qualitätseinbußen möglich. Gleichzeitig erreicht man damit ein Maximum an Flexibilität, was eine spätere Wiedergabe auf beliebigen DVD-Playern angeht.


Voraussetzungen

nach oben 

Um in den Genuss einer weitgehend automatisierten Erstellung von DVDs zu kommen, steht einem zuvor aber noch eine mittlere Installationsorgie bevor. Basierend auf einer SuSE 9.3-Professional-Distribution installiert man zum Übersetzen der diversen Tools aus den Quelltexten am besten einfach die Zusammenstellung C/C++-Compiler und Werkzeuge komplett. Hinzu kommen noch eine Reihe von Paketen. Die folgenden Pakete lassen sich von den SuSE-Installationsmedien per YaST nachinstallieren:

libxml2
libxml2-devel
readline
readline-devel
Xorg-X11-devel
libmpeg2
libmpeg2-devel
compat
gtk
gtk-devel
imlib2
imlib2-devel
imlib2-filters
imlib2-loaders
imagemagick
netpbm
libpng
libpng-devel
libjpeg
libjpeg-devel
SDL
SDL-devel
gettext
texinfo
aalib
aalib-devel
fontconfig
fontconfig-devel
slang
slang-devel
Freetype
Freetype2
Freetype2-devel
zlib
zlib-devel
libdvdread
libdvdread-devel
mkisofs
dvd+rw-tools


Da in dem bei SuSE 9.3 enthaltenen Paketen aus lizenzrechtlichen Gründen leider nicht alle benötigten Funktionen enthalten sind, werden sie aus Quellen wie http://packman.links2linux.de/ oder http://rpmfind.net/ geupdatet.

 
 rpm -Uvh mjpegtools-1.8.0-0.pm.0.i686.rpm

 rpm -Uvh lame-3.96.1-pm.1.i686.rpm

Ausserdem benötigt man noch das Paket dvdauthor von http://dvdauthor.sf.net/ zur automatischen Erstellung des DVD-Menüs.

 
 tar xfz dvdauthor-0.6.11.tar.gz

 cd dvdauthor-0.6.11

 ./configure --prefix=/usr

 make && make install

Weiterhin installiert man giblib von http://www.linuxbrit.co.uk/

 
 tar xfz giblib-1.2.4.tar.gz

 cd giblib-1.2.4

 ./configure --prefix=/usr

 make && make install

sowie gozer von der gleichen Site.
 
 tar xfz gozer-0.7.tar.gz

 cd gozer-0.7

 ./configure --prefix=/usr

 make && make install

Ebenso benötigt man grundsätzlich noch das Paket FFmpeg, das man von http://ffmpeg.sf.net/ downloaden und installieren kann.

 tar xfz ffmpeg-0.4.9-pre1.tar.gz

 cd ffmpeg-0.4.9-pre1

 ./configure --prefix=/usr --enable-shared

 make && make install

VDRConvert braucht ebenfass das Paket transcode von http://www.transcoding.org/. Nach dem Download wird es dann installiert:

 
 tar xfz transcode-1.0.2.tar.gz

 cd transcode-1.0.2

 ./configure --prefix=/usr

 make && make install

VDRConvert nutzt eigentlich tcmplex aus einem älteren Paket von transcode, welches aber in der aktuellen Version nicht mehr enthalten ist. Daher installiert man stattdessen tcmplex-panteltje von http://ip51cf87c4.direct-adsl.nl/panteltje/dvd/.
 
 tar xfz tcmplex-panteltje-0.4.7.tgz

 cd tcmplex-panteltje-0.4.7

 make

 cp tcmplex-panteltje /usr/bin/tcmplex

Anstelle des freien Tools M2VRequantiser lässt sich auch mit dem im Paket von transcode enthaltenen tcrequant in erstaunlich kurzer Zeit das Schrumpfen der VDR-Files mit praktisch nicht wahrnehmbarem Qualitätseinbußen erledigen. Hiermit lassen sich dann auch geringfügig über der Kapazität eines DVD-Rohlings liegende Videodaten noch in ein Image wandeln, welches dann auch gebrannt werden kann.



ProjectX

nach oben 

Leider gelingen in der Praxis nur wenige Aufnahmen so fehlerfrei, dass sie ohne Verlust an Syncronität konvertiert und auf DVD gebrannt werden können. Um die VDR-Aufnahmen aufzubereiten und dabei evtl. enthaltene Fehler und Störungen zu beseitigen existieren seit einiger Zeit mehrere geeignete Tools wie die Weiterentwicklung des ehemaligen Java-Tools ds.jar unter der neuen Bezeichnung ProjectX und die Kommandozeilenvariante von PVAStrumento, welches mittels wine auch für das Betriebssystem Linux nutzbar ist. Ebenso kann VDRConvert auch das Perl-Skript VDRSync, welches es in mehreren Versionen existiert, zu diesem Zweck nutzen. All diese Alternativen stehen bei der Installation zur Auswahl und werden aus dem Paket von VDRConvert bei Bedarf einfach mitinstalliert. Aufgrund meiner bisherigen guten Erfahrungen, setze ich weiterhin auf ProjectX. Da dies ein Java-Programm ist, ist zur Nutzung erst einmal das bei SuSE 9.3 enthaltene Sun Java 2 JRE in der Version 1.5 nachzuinstallieren.


VDRConvert

nach oben 

Letztendlich muss noch der Inhalt des Paketes VDRConvert von http://vdrconvert.vdr-portal.de/vdrc-0.2.0/ installiert werden. Hierbei handelt es sich um die aktuelle Entwicklerversion mit der Möglichkeit animierte Menüs zu erstellen. Aus dem WebCVS lässt sich der Zweig "vdrconvert" als sogen. tarball downloaden und installieren:

 tar xfz vdrconvert.tar.gz

 cd vdrconvert

 ./install.sh

Hierbei werden die Bestandteile ein neues Verzeichnis namens vdrconvert geladen und installiert. Das Skript erkennt die verwendete Distribution und den Kernel automatisch und fragt die wesentlichen Parameter für die Installation interaktiv ab.

Ich habe als Verzeichnis für die ausführbaren Programme und Skripte /usr angegeben. In meinem Fall läuft VDRConvert unter dem User root und der Gruppe video. Als Videoverzeichnis dient /video, ebenso wie z. B. /export für das Zielverzeichnis der zu erstellenden Image-Dateien. Bei der Auswahl von ProjectX als Demuxer-Tool ist noch den Lizenzbedingungen von Java zuzustimmen und der volle Pfad zum Java-Binary mit /usr/bin ist anzugeben. Die weiteren Fragen habe ich nur zum Thema DVD-Erstellung und zum automatischen Brennen von DVDs mit "y" beantwortet sowie die für hiesige Verhältnisse geeignete TV-Norm "pal" ausgewählt. Weiterhin ist noch die Angabe des Gerätenamens des DVD-Brenners mit z. B: hdb anzugeben. Man kann sich auch auf die Kommandos für das DVD+R(W)-Format beschränken, da sich damit ebenfalls das Format DVD-R(W) brennen lässt. Abschließend sind noch die Punkte zum automatischen Start von VDRConvert beim Booten und für den logrotate-Dienst mit "y" zu bestätigen.

Im Anschluss daran werden noch die vorgefertigten Dateien reccmds.conf und commands.conf in das Verzeichnis /etc/vdr kopiert. Der Inhalt der Dateien sorgt dafür, dass zukünftig die für die Erstellung von DVDs zusätzlich benötigten Befehle im OSD-Menü der VDR-Software angeboten werden.

 
 cd vdrconvert

 cp VDRconvert-reccmds.conf /etc/vdr/reccmds.conf

 cp VDRConvert-commands.conf /etc/vdr/commands.conf


Einstellungen

nach oben 

Die Umgebungsvariablen für VDRConvert werden in der Datei /root/.vdrconvert/vdrconvert.env festgelegt. Die meisten Eintragungen sind sinnvoll vorgegeben bzw. wurden bei der Installation abgefragt. Meine manuellen Ergänzungen habe ich hier aufgeführt. Grundsätzlich hat man hier die Wahl zwischen den mitgelieferten oder eigenen Hintergrundbildern für das DVD-Menü sowie den aus dem Menü erstellten Bildern, wie es schon bei der vorherigen Version von VDRConvert möglich war. Alternativ ist auch das Einbinden automatisch erstellter animierter Hintergründe möglich. Dies ist jedoch wesentlich langwieriger und benötigt erheblich mehr temporären Speicherplatz.

## sorgt für eine aussagekräftige Logdatei
VERBOSE="yes"
DEBUG_VDR2DVD="yes"
DEBUG="yes"

## Aktiviert das Shrinken
REQUANT=tcrequant
DVD_OVERHEAD=tcrequant
DVDSIZE=4472
DVD_SHRINK="yes"

DVDAUTHORMODE=5min

#USE_TCMPLEX_PANTELTJE="yes"
#MULTIPLEXER=tcmplex-panteltje
MULTIPLEXER=tcmplex

## Alternative 1:
## eigene oder vorgefertigte bzw. selbst ausgewaehlte Hintergrundbilder
#DVD_USEVIDEOBACKGROUND="no"
#DVD_USESUBVIDEOBACKGROUND="no"
#DVDMAINBACKFILE_USE="yes"
#DVDSUBBACKFILE_USE="yes"
#DVDMAINBACKFILE=/usr/share/vdrconvert/images/background.pnm
#DVDSUBBACKFILE=/usr/share/vdrconvert/images/subbackground.pnm

## Alternative 2:
## animierte Menübilder
DVD_USEVIDEOBACKGROUND="yes"
DVD_USESUBVIDEOBACKGROUND="yes"
DVD_TIMEFRAME="00:04:00-00:04:07;00:04:00-00:04:07;00:04:00-00:04:07;00:04:00-00:04:07"
DVD_TIMESUBFRAME="00:05:00-00:05:07;00:05:00-00:05:07;00:05:00-00:05:07;00:05:00-00:05:07"
DVD_TIMEMAINBACKFRAME="00:06:00-00:06:07;00:06:00-00:06:07;00:06:00-00:06:07;00:06:00-00:06:07"
DVD_TIMESUBBACKFRAME="00:07:00-00:07:07;00:07:00-00:07:07;00:07:00-00:07:07;00:07:00-00:07:07"
# stellt die Animationen ab; zur Beschleunigung
#DVD_DISABLEANIM="yes"

# Variablen für das Brennen
DVDPLUS_RECORD_OPTS="-speed=4 -Z"
DVD_RECORDCMD="growisofs"
DVDPLUS_BLANK_CMD="dvd+rw-format -f"
DVDSTATUSPRG="dvd+rw-mediainfo"
BURN_MAXRETRY=3
DVD_USE_ONLY_PLUS_CMDS="yes"
MEDIA_MSG_OK="Medium wurde erfolgreich erstellt"
MEDIA_MSG_ERROR="Fehler beim Schreibvorgang"
MEDIA_MSG_INSERT_CD="Bitte legen sie ein CD Medium ein"
MEDIA_MSG_INSERT_DVD="Bitte legen sie ein DVD Medium ein"
MEDIA_MSG_START_FORMAT="Medium wird geloescht"
MEDIA_MSG_ISO_READYTOBURN="Isodatei ist fertig zum Brennen"
MEDIA_MSG_START_WRITE_IMAGE="Imagedatei wird gebrannt"
MEDIA_MSG_RETRY_IN_X_MINUTES="Wiederholung in 5 Minuten"


Bedienung

nach oben 

Die zusätzlichen Kommandos aus der Datei /etc/vdr/reccmds.conf können über das OSD-Menü erreicht werden, indem man im Menüpunkt -> Aufzeichnungen die gewünschte Aufnahme mit den Cursortasten markiert und danach gleichsam als Kontextmenü die rote Taste mit der Bezeichnung -> Befehle anwählt. Hier kann die markierte Aufnahme der Liste mit den zu konvertierenden Mitschnitten hinzugefügt oder aber aus der Liste entfernt werden. Zum tatsächlichen Start der Konvertierung muss die Liste mit dem entsprechenden Kommando erst aktiviert werden. Die Liste kann jederzeit zur Überprüfung des Inhaltes und des Platzbedarfs angezeigt werden. Ebenso kann man zum Beispiel aus einer abgespielten Aufnahme heraus die Wiedergabe stoppen und ein geeignetes Hintergrundbild für das Haupt- oder auch das Untermenü der zu erstellenden DVD abspeichern. Dies gelingt allerdings erst beim zweiten Versuch und daher kann man den Erfolg des grab-Befehls überprüfen.

Zu DVD-Liste hinzuefgen         : /usr/bin/ins.sh vdr2dvd
Von DVD-Liste entfernen?        : /usr/bin/del.sh vdr2dvd
DVD-Liste abarbeiten            : /usr/bin/convstart.sh vdr2dvd
DVD-Liste anzeigen              : /usr/bin/cap.sh vdr2dvd
Bild fuer DVD-Hauptmenue        : /usr/bin/grab.sh "background.pnm"
Bild fuer DVD-Untermenue        : /usr/bin/grab.sh "subbackground.pnm"
Letzter Status von Grab         : cat /tmp/vdrgrab

Später einmal sollen die notwendigen Kommandos über die Pluginschnittstelle aus dem Menü des VDR heraus aufgerufen werden können.

Mit dem nächsten Start von VDR steht auch der in der Datei /etc/vdr/commands.conf enthaltene Befehl unter dem neuen Menüpunkt -> Befehle bereit. Hier lässt sich jederzeit der aktuelle Status von VDRConvert abfragen und ggf. der Dienst starten oder stoppen.

VDRConvert Status anzeigen      : /usr/bin/status.sh
VDRConvert starten              : /etc/init.d/vdrconvert start >/dev/null 2>&1
VDRConvert stoppen              : /etc/init.d/vdrconvert stop >/dev/null 2>&1


Fehlersuche

nach oben 

Der erste Anlaufpunkt bei der Fehlersuche ist sinnvoller Weise eine Überprüfung, ob die über das OSD-Menü eingegebenen Kommandos korrekt erkannt wurden. Hier bietet es sich an, die Ausgabe der VDR-Software per Syslog in einem separaten Terminalfenster mitzulesen.

 tail -f /var/log/messages

Zumindest in der Anfangsphase der Einrichtung von VDRConvert sollte man in der Konfigurationsdatei /root/.vdrconvert/vdrconvert.env das Debuggen zur Hilfe bei der Fehlersuche aktivieren mit dem Setzen der diversen Debug-Variablen auf "yes". Dann kann man für die genutzten Dienste die Ausgaben in der jeweiligen Logdatei auslesen.

 tail -f /var/log/vdrconvert/vdr2dvd.log

 tail -f /var/log/vdrconvert/burn.log


© 2004 - 2006 Hubertus Sandmann