Vdrconvert

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

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

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 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.

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:

debian:/etc/samba# rm smb.conf 
debian:/etc/samba# nano 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 = ess
        browseable = ses
        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"

CVS

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

Von gelöschten Beitrag Bearbeiten von Archivieren von Aufnahmen kopiert:

Irgendwann ist jede Festplatte in einem VDR mal voll. Dann bietet es sich an, die Aufnahmen mittels Optische Laufwerke/Brenner auf CDs oder DVDs auszulagern oder die Umwandlung der Aufnahmen in ein Datenformat das platzsparender ist und einen guten Kompromiss zwischen Qualität und Speicherplatz bietet. Grundsätzlich gibt es mehrere Möglichkeiten, Aufnahmen dauerhaft zu archivieren [1]:

  • 1. Archivieren der VDR-Aufnahmeverzeichnisse auf DVD [2]: Praktisch, weil keine weitere Vorverarbeitung nötig ist. Allerdings können die so erzeugten DVDs auch nur in einem VDR abgespielt werden.
  • 2. Erzeugen einer standardkonformen DVD: Solche DVDs lassen sich auch in einem handelsüblichen DVD-Player abspielen.
  • 3. Umwandlung in DivX...