Vdrconvert

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(M)
Zeile 1: Zeile 1:
==Beschreibung==
 
'''Autor:''' Dimitrios Dimitrakos
 
  
Vdrconvert erlaubt das Erzeugen und Brennen standardkonformer DVDs aus VDR-Aufnahmen. Dabei ist keine Konvertierung 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 mittles 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.
 
 
<!--
 
==Bilder==
 
{|
 
|[[Bild:vdrconvert-plugin-00.jpg|thumb|none|''kurze beschreibung'']]
 
|[[Bild:vdrconvert-plugin-01.jpg|thumb|none|''kurze beschreibung'']]
 
|}
 
-->
 
 
==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.<br>
 
Einzig nennenswertes:<br>
 
Anlegen eines zusätzlichen Benutzers als späteren Sambauser (zb. smbuser).<br>
 
Dies ist eine Anleitung für ein alleinstehendes System ohne VDR-Dienst, jedoch sollte es auch auf einem Debian-VDR zu installieren sein.<br>
 
Weiter '''beschränke''' ich mich hier auf die '''Erstellung von DivX'''.
 
 
==Installation==
 
 
===CT-vdr Version 2===
 
apt-get install vdr-addon-vdrconvert
 
 
====Konfigurationsdateien anpassen====
 
Die Datei '''[[reccmds.conf]]''' mit den notwendigen Kommandos fuellen. Meine Datei sieht folgendermassen aus:
 
{{Box Datei|$VDRCONFIG/reccmds.conf|
 
<pre>
 
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
 
</pre>
 
}}
 
Desweiteren die Datei '''vdrconvert.env''' mit den notwendigen Infos fuellen. Da ich nur die ''vdr2dvd'' Funktionalitaet benutze sieht diese bei mir so aus:
 
{{Box Datei|/etc/vdr/vdrconvert/etc/vdrconvert.env|
 
<pre>
 
#---------------------------------------------------------------------
 
# 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
 
</pre>
 
}}
 
 
===Debian===
 
 
====Vorbereitungen====
 
Zu aller Erst benötigen wir den ssh-Server um per Remote auf der Kiste arbeiten zu können.
 
Zusätzlich wird eine neuere vi-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:
 
 
<pre>
 
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
 
</pre>
 
Verzeichnis und Sambauser anlegen, ihm das ''/vdrpakete''-Verzeichnis gefügig machen und den Sambadienst neu starten.
 
<pre>
 
debian:~# mkdir /vdrpakete       
 
debian:~# smbpasswd -a smbuser
 
New SMB password:
 
Retype new SMB password:
 
debian:~# chown king /vdrpakete/
 
debian:~# smbd restart && nmbd restart
 
</pre>
 
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:
 
<pre>
 
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
 
</pre>
 
automake --><br>
 
nasm --><br>
 
libxml2-dev --><br>
 
gettext --><br>
 
bzip2 --> zum Entpacken von zip-komprimierten Tar-Archiven (XXX.tar.bz2)<br>
 
libglib1.2-dev --> <br>
 
x-window-system-core --> <br>
 
x-window-system-dev --> <br>
 
fluxbox --> <br>
 
xdm --> <br>
 
libmagick++6-dev --> (Wird von transcode benötigt)<br>
 
libsdl1.2-dev --> (Wird von transcode benötigt)<br>
 
 
----
 
'''GTK+ 1.2.5'''
 
<pre>
 
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 ..
 
</pre>
 
 
'''lame 3.96'''
 
<pre>
 
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 ..
 
</pre>
 
 
'''libfame 0.9.1'''
 
<pre>
 
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 ..
 
</pre>
 
 
'''vdrsync 0.1.2.2dev2'''
 
<pre>
 
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/
 
</pre>
 
 
'''tcmplex-panteltje 0.3'''
 
<pre>
 
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 ..
 
</pre>
 
 
'''divx4linux 18.04.2002'''
 
<pre>
 
cd /usr/local/src/
 
tar xfvz /vdrpakete/divx4linux-20020418.tgz -C .
 
cd divx4linux-20020418/
 
./install.sh
 
cd ..
 
</pre>
 
 
'''MPlayer 1.0pre3'''
 
<pre>
 
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 ..
 
</pre>
 
 
'''transcode 0.6.12'''
 
<pre>
 
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 ..
 
</pre>
 
 
----
 
'''VDRConvert 0.1.0'''
 
Zum Installieren des Convertierungsprogramms müssen noch das Quell- und Zielverzeichnis erstellt werden.
 
<pre>
 
mkdir /video
 
mkdir /data
 
</pre>
 
Installation:
 
<pre>
 
cd /usr/local/src/
 
cp /vdrpakete/vdrconvert-0.1.1.run .
 
./vdrconvert-0.1.1.run
 
</pre>
 
 
Im Installationmenü folgende Einstellungen:
 
<pre>
 
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
 
</pre>
 
 
====Bedienung====
 
Um von entfernten Rechnern (VDR-Server) einen Job starten zu können werden Video- und Jobverzeichnis per Samba freigegeben.<br>
 
Zusätzlich in die smb.conf:
 
<pre>
 
[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
 
</pre>
 
Rechte zuweisen und Samba-Neustart:
 
<pre>
 
chown -R king /video/
 
chown -R king /var/spool/vdrconvert/
 
smbd restart && nmbd restart
 
</pre>
 
 
Bevor der Knecht nun zur Arbeit geschickt wird, sollte das Config-File zur DivX-Erstellung verändert werden.<br>
 
Würde man es so lassen, kommen default-Einstellungen zum Einsatz und es wird ein relativ grosses Avi-File produziert. (10min --> 161MB)<br>
 
Die Datei nennt sich vdrconvert.env und liegt bei der 0.1.0-Version unter ''/root/.vdrconvert/''.<br>
 
Hier wird nun der folgende Text (Einstellungen von [http://www.dogge-heros.de/vdr/vdr.htm Catweazles VDR])  angehängt (10min --> 118MB):
 
<pre>
 
###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
 
#
 
</pre>
 
----
 
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:
 
<pre>
 
smbmount //IP/vid /karre2/video -o username=smbuser,password=somepass
 
smbmount //IP/conv /karre2/vdrconvert -o username=smbuser,password=somepass
 
</pre>
 
Jetzt kann der Job abgeschickt werden (Rechner2).
 
<pre>
 
cp -R 10min_test/ /karre2/video/
 
echo "/video/10min_test/2005-01-11.09.46.99.99.rec/" >> /karre2/vdrconvert/vdr2divx
 
</pre>
 
 
====Skripte====
 
Ich habe mir ein mini-Skript zum Abfeuern der Aufträge gebastelt:
 
<pre>
 
#!/bin/sh
 
 
echo "$1" >> /Pfad_zu_vdrconvert/vdr2divx
 
</pre>
 
Ausführbar machen und in /usr/bin eintragen:
 
<pre>
 
chmod +x divx.sh
 
ln -s /Pfad_zum_Skript/divx.sh /usr/bin/divx
 
</pre>
 
Nun kann man mit divx /video/Aufzeichnung/200...rec/ die Aufnahme umwandeln..
 
 
Zum Betrachten des Umwandlungslogfiles folgendes Skriptchen:
 
<pre>
 
#!/bin/sh
 
 
tail -f -n 100 /var/log/vdrconvert/vdr2divx.log
 
</pre>
 
Ausführbar machen und in /usr/bin eintragen:
 
<pre>
 
chmod +x logdivx.sh
 
ln -s /Pfad_zum_Skript/logdivx.sh /usr/bin/logdivx
 
</pre>
 
 
====Probleme====
 
 
Beim ''./configure --prefix=/usr/local'' von Lame erscheint folgendes:
 
<pre>
 
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
 
</pre>
 
Prüft man per Hand scheint es zu gehen... ?
 
<pre>
 
debian:/usr/local/src# /usr/local/bin/gtk-config --version
 
1.2.5
 
</pre>
 
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:
 
[http://www.vdr-portal.de/board/thread.php?threadid=20330]
 
 
<!-- ==Optionen== -->
 
<!-- ==Patches== -->
 
<!-- ==Konfiguration== -->
 
<!-- ==Einstellungen== -->
 
<!-- ==Parameter== -->
 
<!-- ==Bedienung== -->
 
<!-- ==Probleme== -->
 
<!-- ==Tipps== -->
 
<!-- ==Wunschliste== -->
 
 
==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.vdrportal.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)
 
|}[[Kategorie:Plugins]][[en:vdrconvert-plugin]]
 

Version vom 15. November 2005, 12:16 Uhr