Homepage |
© 2004 - 2006
Hubertus
Sandmann |
DVDs brennen mit Linux | DVDs von VDR-Aufnahmen erstellen | Video-DVDs mit Linux abspielen |
|
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.
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 installsowie 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 installVDRConvert 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/tcmplexAnstelle 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.
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.
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.shHierbei 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
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"
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/vdrgrabSpä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
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
DVDs brennen mit Linux | DVDs von VDR-Aufnahmen erstellen | Video-DVDs mit Linux abspielen |
Homepage |
© 2004 - 2006
Hubertus
Sandmann |