Vdrconvert
Inhaltsverzeichnis |
Beschreibung
Autor: Dimitrios Dimitrakos
Vdrconvert erlaubt das Erzeugen und Brennen standardkonformer DVDs aus VDR-Aufnahmen. Dabei ist keine Rekodierung nötig, sondern nur ein Umlagern der DVB-Streams, die ja schon im MPEG-Format vorliegen. Allerdings ist die Anordnung der Bild- und Tonpakete bei den gesendeten MPEG-Streams anders, als sie auf der DVD vorliegen müssen.
Vdrconvert nutzt VDRsync oder ProjectX, um die Ton- und Bildinformationen zu separieren (den Vorgang nennt man demuxen) und setzt sie mittels mplex oder tcmplex wieder im richtigen Format zusammen (muxen). Zudem kann ein DVD-Menü mit Informationen aus dem EPG erzeugt und Sprungmarken können als Kapitel auf der DVD gespeichert werden.
Außerdem können mit Vdrconvert DivX-Filme erzeugt werden.
Hardwareanforderungen
- normales x86-System. (Je mehr Power, desto besser!)
Softwareanforderungen
Für die folgende Installation lege ich ein Debian-Sarge per netinstall-CD zu Grunde.
Als Bootoption habe ich "linux" gewählt.
Einzig Nennenswertes:
Anlegen eines zusätzlichen Benutzers als späteren Sambauser (zb. smbuser).
Dies ist eine Anleitung für ein alleinstehendes System ohne VDR-Dienst, jedoch sollte es auch auf einem Debian-VDR zu installieren sein.
Weiter beschränke ich mich hier auf die Erstellung von DivX.
Installation
Konfigurationsdateien anpassen
Die Datei reccmds.conf mit den notwendigen Kommandos füllen. Meine Datei sieht folgendermassen aus:
DivX-Menue : echo "nothing (vdr2divx)" -Zu DivX-Liste hinzufuegen : /usr/bin/ins.sh vdr2divx -Von DivX-Liste entfernen? : /usr/bin/del.sh vdr2divx -DivX-Liste abarbeiten? : printf "\n" >> /var/spool/vdrconvert/vdr2divx -DivX-Liste anzeigen : /usr/bin/cap.sh /var/spool/vdrconvert/vdr2divx DVD-Menue : echo "nothing (vdr2dvd)" -Zu DVD-Liste hinzufuegen : /usr/bin/ins.sh vdr2dvd -Von DVD-Liste entfernen? : /usr/bin/del.sh vdr2dvd -DVD-Liste abarbeiten? : printf "\n" >> /var/spool/vdrconvert/vdr2dvd -DVD-Liste anzeigen : /usr/bin/cap.sh /var/spool/vdrconvert/vdr2dvd -Bild fuer DVD-Hauptmenue : /usr/bin/grab.sh "background.pnm" vdr2dvd -Bild fuer DVD-Untermenue : /usr/bin/grab.sh "subbackground.pnm" vdr2dvd -DVD-Link setzen (Vorschau) : /usr/bin/preview.sh vdr2dvd SVCD-Menue : echo "nothing (vdr2svcd)" -Zu SVCD-Liste hinzufuegen : /usr/bin/ins.sh vdr2svcd -Von SVCD-Liste entfernen? : /usr/bin/del.sh vdr2svcd -SVCD-Liste abarbeiten? : printf "\n" >> /var/spool/vdrconvert/vdr2svcd -SVCD-Liste anzeigen : /usr/bin/cap.sh /var/spool/vdrconvert/vdr2svcd VCD-Menue : echo "nothing (vdr2vcd)" -Zu VCD-Liste hinzufuegen : /usr/bin/ins.sh vdr2vcd -VCD-Liste abarbeiten? : printf "\n" >> /var/spool/vdrconvert/vdr2vcd -Von VCD-Liste entfernen? : /usr/bin/del.sh vdr2vcd -VCD-Liste anzeigen : /usr/bin/cap.sh /var/spool/vdrconvert/vdr2vcd Sonstiges : echo "nothing" -MPEG erstellen (sync)? : printf "%s\n" > /var/spool/vdrconvert/vdr2mpg -MP3 erstellen? : printf "%s\n" > /var/spool/vdrconvert/vdr2mp3 -AC3 erstellen? : printf "%s\n" > /var/spool/vdrconvert/vdr2ac3
Desweiteren die Datei vdrconvert.env mit den notwendigen Infos fuellen. Da ich nur die vdr2dvd Funktionalitaet benutze sieht diese bei mir so aus:
#--------------------------------------------------------------------- # Environment for vdrsync Scripts ! #--------------------------------------------------------------------- # Version: 0.0.12 pre-alpha # Author: Dimitrios Dimitrakos mail@dimitrios.de # $Id: vdrconvert.env,v 1.2 2003/09/27 22:28:43 dimi Exp $ # # Base Destination dir # default /tmp DESTDIR=/video/film # root of VDRs1 video structure - usually /video or /video0 # default /video VDRROOT=/video CONVERT_JOBS="vdr2divx vdr2dvd vdr2vcd vdr2svcd vdr2mpg vdr2mp3 vdr2ac3 burn" DVDMAINSILENCEFILE=/usr/share/vdrconvert/silence-1s.mp2 DVDSUBSILENCEFILE=/usr/share/vdrconvert/silence-1s.mp2 # Writer Environment #DVD_AUTOWRITE=yes #MP3_AUTOWRITE=yes #DIVX_AUTOWRITE=yes #MPG_AUTOWRITE=yes #SVCD_AUTOWRITE=yes #VCD_AUTOWRITE=yes #MEDIAWRITER="/dev/scd1:0,1,0" # Burn DVD on CD #MINIDVD=yes #DVDSIZE=4472 DVDAUTHORMODE="5min" #DVDAUTHORUSERCHAP=" 0,15:00,30:00,45:00,1:00:00,1:15:00,1:30:00,1:45:00,2:00:00,2:15:00,2:30:00,2:45:00" #CDSIZE=650 # Deactivate Shrinking #DVD_SHRINK=no REQUANT="tcrequant -f" # Activate Fonts #DVD_USE_FONTS="yes" #PATH_FONTS="/etc/vdr/vdrconvert/fonts/truetype" # Activate Labels #DVDCDLABELGEN="/etc/vdr/vdrconvert/cdlabelgen" # Enable Debug, Output geht nach /var/log/vdrconvert/ DEBUG=yes
Debian
Vorbereitungen
Zuerst benötigen wir den SSH-Server um per Remote auf der Kiste arbeiten zu können. Zusätzlich wird eine neuere vim-Version (Standardtexteditor unter Linux) installiert.
apt-get install ssh vim
Nächster Schritt ist die Installation eines Samba-Servers um Verzeichnisse freizugeben.
apt-get install samba smbfs
Das folgende Konfigurations-Menü einfach mit Enter durchklicken. Die Datei /etc/samba/smb.conf löschen wir und ersetzen sie durch die "schlanke" Version (bei workgroup die eigene lokale Netzwerkarbeitsgruppe eintragen anstatt TUX-NET!):
rm /etc/samba/smb.conf nano /etc/samba/smb.conf [global] workgroup = TUX-NET os level = 2 time server = Yes unix extensions = Yes encrypt passwords = Yes log level = 1 syslog = 0 printing = CUPS printcap name = CUPS socket options = SO_KEEPALIVE IPTOS_LOWDELAY TCP_NODELAY wins support = No veto files = /*.eml/*.nws/riched20.dll/*.{*}/ [vdrpakete] path = /vdrpakete comment = Vdrpakete-Verzeichnis guest ok = no writeable = yes browseable = yes available = yes valid users = smbuser public = no
Verzeichnis und Sambauser anlegen, ihm das /vdrpakete-Verzeichnis gefügig machen und den Sambadienst neu starten.
debian:~# mkdir /vdrpakete debian:~# smbpasswd -a smbuser New SMB password: Retype new SMB password: debian:~# chown king /vdrpakete/ debian:~# smbd restart && nmbd restart
Nun kann man per smb://IP/vdrpakete von seinem PC auf das Verzeichnis zugreifen und Dateien auf die Karre bringen...
Installation
Vorerst ein paar benötigte Pakete:
apt-get install automake nasm libxml2-dev gettext bzip2 libglib1.2-dev x-window-system-core apt-get install x-window-system-dev xdm fluxbox libmagick++6-dev libsdl1.2-dev
automake -->
nasm -->
libxml2-dev -->
gettext -->
bzip2 --> zum Entpacken von zip-komprimierten Tar-Archiven (XXX.tar.bz2)
libglib1.2-dev -->
x-window-system-core -->
x-window-system-dev -->
fluxbox -->
xdm -->
libmagick++6-dev --> (Wird von transcode benötigt)
libsdl1.2-dev --> (Wird von transcode benötigt)
GTK+ 1.2.5
cd /usr/local/src/ tar xfvz /vdrpakete/gtk+-1.2.5.tar.gz -C . cd gtk+-1.2.5/ ./configure --prefix=/usr/local/ && make && make install && ldconfig && cd ..
lame 3.96
cd /usr/local/src/ tar xfvz /vdrpakete/lame-3.96.tar.gz -C . cd lame-3.96/ ./configure --prefix=/usr/local/ && make && make install && ldconfig && cd ..
libfame 0.9.1
cd /usr/local/src/ tar xfvz /vdrpakete/libfame-0.9.1.tar.gz -C . cd libfame-0.9.1/ ./configure --prefix=/usr/local/ && make && make install && ldconfig && cd ..
vdrsync 0.1.2.2dev2
cd /usr/local/src/ tar xfvz /vdrpakete/vdrsync-0.1.2.2dev2.tgz -C . cp vdrsync-0.1.2.2dev2/vdrsync.pl /usr/local/bin/ cp vdrsync-0.1.2.2dev2/vdrsync.pl /usr/bin/
tcmplex-panteltje 0.3
cd /usr/local/src/ tar xfvz /vdrpakete/tcmplex-panteltje-0.3.tgz -C . cd tcmplex-panteltje-0.3/ cp /vdrpakete/tcmplex-panteltje-0.3.patch . cat tcmplex-panteltje-0.3.patch |patch -p1 make && make install && ldconfig && cd ..
divx4linux 18.04.2002
cd /usr/local/src/ tar xfvz /vdrpakete/divx4linux-20020418.tgz -C . cd divx4linux-20020418/ ./install.sh cd ..
MPlayer 1.0pre3
cd /usr/local/src/ tar xfvj /vdrpakete/MPlayer-1.0pre3.tar.bz2 -C . cd MPlayer-1.0pre3/ ./configure --prefix=/usr/local/ && make && make install && ldconfig && cd ..
transcode 0.6.12
cd /usr/local/src/ tar xfvj /vdrpakete/transcode-0.6.12.tar.bz2 -C . cd transcode-0.6.12/ ./configure --prefix=/usr/local/ && make && make install && ldconfig && cd ..
VDRConvert 0.1.0 Zum Installieren des Convertierungsprogramms müssen noch das Quell- und Zielverzeichnis erstellt werden.
mkdir /video mkdir /data
Installation:
cd /usr/local/src/ cp /vdrpakete/vdrconvert-0.1.1.run . ./vdrconvert-0.1.1.run
Im Installationmenü folgende Einstellungen:
VDRConvert 0.1.0 Installation ----------------------------- Debian 3.1 Kernel 2.4.26-1-386 Enter Installation prefix (/usr, /usr/local, ...) : /usr/local Enter User : root Enter group : root Enter VDR's videodir (/video, /video0, ...) : /video Enter target directory (/video, /video0, /film, /movies, ...) : /data Select demuxer -------------- 1) vdrsync.pl ( Need Perl ) 2) vdrsync.pl Developer version ( Need Perl ) 3) Project X ( Need Java and Xvfb ) 4) PVAStrumento ( Need wine and Xvfb ) Your choice : 2 Enable vdrconvert for : DivX ? y DVD ? n VCD ? n SVCD ? n MPG ? y MP3 ? y AC3 ? n Burning ? n
Bedienung
Um von entfernten Rechnern (VDR-Server) einen Job starten zu können werden Video- und Jobverzeichnis per Samba freigegeben.
Zusätzlich in die smb.conf:
[conv] path = /var/spool/vdrconvert/ comment = Convert-Verzeichnis guest ok = no writeable = yes browseable = yes available = yes valid users = king public = no [vid] path = /video comment = Video-Verzeichnis guest ok = no writeable = yes browseable = yes available = yes valid users = king public = no
Rechte zuweisen und Samba-Neustart:
chown -R king /video/ chown -R king /var/spool/vdrconvert/ smbd restart && nmbd restart
Bevor der Knecht nun zur Arbeit geschickt wird, sollte das Config-File zur DivX-Erstellung verändert werden.
Würde man es so lassen, kommen default-Einstellungen zum Einsatz und es wird ein relativ grosses Avi-File produziert. (10min --> 161MB)
Die Datei nennt sich vdrconvert.env und liegt bei der 0.1.0-Version unter /root/.vdrconvert/.
Hier wird nun der folgende Text (Einstellungen von Catweazles VDR) angehängt (10min --> 118MB):
###DIVX # DIVX_DESTDIR=$DESTDIR/divx #Zielverzeichniss DIVXSPLIT="no" DIVXTYPE=lavc # lavc / divx / xvid DIVX_SUFFIX=avi # Datei endung DIVXCCHOPT="-cache 32768" # Optionen DIVXENCOPT="" # Sonstige optionen DIVXTCMODE=s # SVCD Konform DIVXVLAVCCODEC=mpeg4 # mencoder lavc optionen DIVXQUALITY=5 # mencoder Qualität DIVXMP3R=192 # MP3 Bitrate für Lame DIVXMP3_OPTS="-b $DIVXMP3R -h" #Hohe Qualität für MP3 DIVXSWS=2 # Beste Video Qualität DIVXCDLEN=1200 # CD Kapazität, hat unmittelbar Einfluss auf die Bitrate DIVXMAXBITR=3000 # Maximal bitrate DIVXMINBITR=500 # Minimal bitrate DIVXHQ="yes" # Hohe Qualität produzieren #bei "no" wird die auflösung # durch 2 geteilt # und eine Bitrate von 400 # eingesetzt (Archiv) DIVXNOAC3=yes # AC3 Ton nicht berücksichtigen DIVXAC3ONLY=no # Nur AC3 Ton falls vorhanden DIVXBOTHMP=no # Beide MPeg spuren einsetzen (kein AC3) DIVXFAKTOR=2 # Reduktionsfaktor für Filme < CD Länge DIVX_USEFAKTOR=no DIVX_MAXLEN=90 DIVX_MAXDIV=20 DIVX_RESDIV=yes # Halbiert die Aulösung DIVXAUTOCROP=no # Schwarze ränder entfernen DIVX_TITLEDATE=$CONV_TITLEDATE #
Zur Fehlersuche einfach in der vdrconvert.env die Zeile #DEBUG=yes von dem Doppelkreuz befreien. Dann werden die Einzelschritte des Umwandlungsprozesses mitgeloggt (Viiieeelll Text).
Nun kann man die beiden Verzeichnisse von einem anderen Rechner mounten:
smbmount //IP/vid /karre2/video -o username=smbuser,password=somepass smbmount //IP/conv /karre2/vdrconvert -o username=smbuser,password=somepass
Jetzt kann der Job abgeschickt werden (Rechner2).
cp -R 10min_test/ /karre2/video/ echo "/video/10min_test/2005-01-11.09.46.99.99.rec/" >> /karre2/vdrconvert/vdr2divx
Skripte
Ich habe mir ein mini-Skript zum Abfeuern der Aufträge gebastelt:
#!/bin/sh echo "$1" >> /Pfad_zu_vdrconvert/vdr2divx
Ausführbar machen und in /usr/bin eintragen:
chmod +x divx.sh ln -s /Pfad_zum_Skript/divx.sh /usr/bin/divx
Nun kann man mit divx /video/Aufzeichnung/200...rec/ die Aufnahme umwandeln..
Zum Betrachten des Umwandlungslogfiles folgendes Skriptchen:
#!/bin/sh tail -f -n 100 /var/log/vdrconvert/vdr2divx.log
Ausführbar machen und in /usr/bin eintragen:
chmod +x logdivx.sh ln -s /Pfad_zum_Skript/logdivx.sh /usr/bin/logdivx
Probleme
Beim ./configure --prefix=/usr/local von Lame erscheint folgendes:
checking for gtk-config... /usr/local/bin/gtk-config checking for GTK - version >= 1.2.0... no *** Could not run GTK test program, checking why... *** The test program compiled, but did not run. This usually means *** that the run-time linker is not finding GTK or finding the wrong *** version of GTK. If it is not finding GTK, you'll need to set your *** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point *** to the installed location Also, make sure you have run ldconfig if that *** is required on your system *** *** If you have an old version installed, it is best to remove it, although *** you may also be able to get things to work by modifying LD_LIBRARY_PATH *** *** If you have a RedHat 5.0 system, you should remove the GTK package that *** came with the system with the command *** *** rpm --erase --nodeps gtk gtk-devel checking use of ElectricFence malloc debugging... no
Prüft man per Hand scheint es zu gehen... ?
debian:/usr/local/src# /usr/local/bin/gtk-config --version 1.2.5
Wobei der Prüfbefehl ohne "--version" ist... ?
Probleme mit Umlaute:
Zeichensatz anpassen damit auch Filme mit Umlauten (ä,ö,ü... konvertiert werden)
Anleitung ist getestet auf einem CT-VDR3.6 (mit einigen apt-get updates)
1. Update von dvdauthor 0.6.10-2 auf mindestens 0.6.10-4
2. Gegebenenfalls locales installieren:
vdr:~# apt-get install locales
3. vdr:~# dpkg-reconfigure locales
de_DE ISO-8859-1 (UND) de_DE@euro ISO-8859-15 auswählen. [OK]
de_DE@euro ISO-8859-15 als System-default auswählen [OK]
4. dpkg-reconfigure -p low console-data
im Menü: quertz; German; Standard; latin1 - no dead keys (vorher gab es keine Umlaute auf der Tastatur)
5. /etc/vdr/vdrconvert/vdrconvert.conf anpassen mit:
RECODE="recode latin1..UTF-8"
Problem mit Berechtigung
Fehlermeldung im syslog wenn der vdrconvert Dämon unter Benutzer vdr läuft:
logger: /usr/bin/vdrconvert.sh : ERROR : Wrong permissions. /usr/bin/vdrconvert.sh exit
Lösung:
chown -R vdr:video /var/spool/vdrconvert /var/run/vdrconvert /var/log/vdrconvert
siehe VDR-Portal Thread:
[1]
Snapshot
cvs -d :pserver:anoncvs@ddimi.homeip.net:/cvs login cvs -d :pserver:anoncvs@ddimi.homeip.net:/cvs co vdrconvert
Links
[1] | http://www.vdrportal.de/board/thread.php?threadid=12830 | Diskussion im VDRportal |
[2] | http://vdrconvert.vdr-portal.de | Homepage von VDRconvert |
[3] | http://www.vdrportal.de/board/thread.php?threadid=16759 | VDR aufnahmen direkt auf DVD brennen |
[4] | http://www.vdr-portal.de/board/thread.php?postid=296634#post296634 | Projectx unter Debian installieren (Beitrag im VDR-Portal) |