Finde VdrAssistant auf SourceForge.net. Schnell, sicher und kostenlos: Open Source Software download

Ein Assistent nicht nur zur Umwandlung von VDR-Aufnahmen zu einer DVD

Sklaven auf Linie bringen

Voraussetzungen

Das Arbeitstier ist der Rechner, auf dem die Systemdienste von VdrAssistant laufen. Das kann auch der Rechner sein, auf dem die Datenbank läuft, muss aber nicht.

Der Jobverarbeiter ist der Dienst mit dem höchsten Bedarf an Rechenleistung. Wer Umwandlungen von HD-Aufnahmen, bzw. allgemein Umwandlungen nach mkv durchführen will, sollte den Rechner mit der potentesten CPU zum Arbeitstier machen. Auf gängigen Rechnern dauert die Umwandlung eines Filmes deutlich über 12 Stunden. Die Umwandlungsdauer kann zum einen über die CPU beeinflusst werden, zum anderen über die gewünschte Qualität.

Die Erstellung einer DVD aus mehreren Aufnahmen dauert nicht ganz solange, meist aber auch einige Stunden.

Auf jeden Fall muss es ein Linux-System sein!

Der Bash-Installateur ist dafür vorgesehen, Datenbank und Systemdienste zu installieren, bzw. einzurichten. Da die Systemdienste auch auf mehrere Rechner verteilt werden können, kann der Bash-Installateur auch auf mehreren Rechnern ausgeführt werden. Alle Installationsschritte können ausgewählt werden. Damit der Bash-Installateur ausgeführt werden kann, sollten folgende Linux-Pakete installiert sein:

  • dialog
  • mysql-client (oder mysql-server, wenn die Datenbank auf dem Arbeitstier laufen soll)
  • sudo
  • sun-java6-jdk

Der Benutzer, der für die Installation verwendet wird, muss in der Datei /etc/sudoers für die Verwendung von sudo zugelassen sein.

Auf dem Rechner, auf dem der Jobverarbeiter laufen soll, werden folgende Pakete erwartet:

  • imagemagick
  • mjpegtools
  • transcode
  • m2vrequantiser
  • dvdauthor
  • handbrake-cli
  • ffmpeg
  • vdr

Auf dem Rechner, auf dem der Aufnahme-Bearbeiter-Dienst laufen soll, wird, neben einer Ramdisk, zusätzlich noch benötigt:

  • vdr-genindex
  • handbrake-cli
  • ffmpeg
  • vdr

Vorbereitung

Debian ist das, was ich unter Linux verstehe, bzw. von einem Betriebssystem erwarte, deshalb wird die Vorbereitung des Rechners anhand eines Debian Systems beschrieben

Die notwendigen Pakete für VdrAssistant gibt es nicht in den Hauptarchiven von Debian, d.h. die Paketverwaltung muss zuerst aufgebohrt werden. Manche Pakete gibt es im non-free-Bereich, andere nur auf Debian-Multimedia. Die Erweiterung des Paketsystems im Einzelnen:

Datei /etc/apt/sources.list in den Editor der Wahl laden und die deb-Zeilen der Debian-Archive um die Bereiche "contrib" und "non-free" erweitern, d.h. die Haupzeilen sollten dann etwa so aussehen:

deb http://ftp.de.debian.org/debian/ lenny main non-free contrib
deb-src http://ftp.de.debian.org/debian/ lenny main non-free contrib

Um das Debian-Multimedia-Archiv einzubinden, muss erst der Schlüssel zur Überprüfung der Archive geladen und importiert werden. Anschließend erstellen wir eine neue Datei mit den Archiv-Informationen und aktualisieren den Debian Paketcache (die Pakete aus dem non-free Bereich von Multimedia gibt es leider nicht mehr im Quelltext, deshalb reicht eine Zeile) :

wget --quiet http://www.debian-multimedia.org/pool/main/d/debian-multimedia-keyring/debian-multimedia-keyring_2008.10.16_all.deb
dpkg -i debian-multimedia-keyring_2008.10.16_all.deb

echo "deb http://www.debian-multimedia.org lenny main non-free" > /etc/apt/sources.list.d/debian-multimedia.org.list

apt-get update 
Das Paket genindex gehört zum VDR und den gibt es für Debian z.B. bei e-tobi. Da bei ihm einige Pakete neuer sind, als bei Debian Original, müssen wir das Paketsystem zusätzlich noch anweisen, wie Konflikte aufzulösen sind (gleicher Paketname in unterschiedlichen Archiven).
# e-tobis Repository für vdr einrichten
wget --quiet http://e-tobi.net/vdr-experimental/pool-lenny/binary/base/e-tobi-keyring_2008.03.08_all.deb
dpkg -i e-tobi-keyring_2008.03.08_all.deb

cat > /etc/apt/sources.list.d/vdr.list << EOF
   # release = vdr-experimental | vdr-testing
   # dist    =  etch | lenny | sid
   # section = base | backports | addons | vdr-standard | vdr-extensions |
   # vdr-multipatch

   deb http://e-tobi.net/vdr-experimental lenny base backports addons vdr-multipatch
   deb-src http://e-tobi.net/vdr-experimental lenny base backports addons vdr-multipatch
EOF

# e-tobis vdr Pakete haben Priorität
cat >> /etc/apt/preferences << EOF
Package: *
Pin: release o=e-tobi.net
Pin-Priority: 1001
EOF

apt-get update
Jetzt können wir die zu installierenden Pakete in eine Datei schreiben und anschließend installieren (in der Annahme, dass alle Dienste auf dem Server installiert werden):
cat > va.packages << EOF
   dialog
   mysql-client
   sudo
   sun-java6-jdk
   imagemagick
   mjpegtools
   transcode
   m2vrequantiser
   dvdauthor
EOF

apt-get install $( < va.packages )

Konfiguration

Wie unter Menüpunkt Voraussetzung beschrieben, muss /etc/hosts überprüft werden

Damit der Bash-Installateur auch arbeiten kann, muss der Installationsbenutzer sudo ausführen dürfen. Die Installation sollte nicht als root ausgeführt werden!
Dazu wird die Datei /etc/sudoers editiert. Wer sich mit der Syntax nicht so auskennt, könnte z.B. den Eintrag von root duplizieren und root gegen den Benutzernamen austauschen. So ein Eintrag sieht dann (für einen Benutzer vaUser) beispielsweise so aus:

vaUser  ALL=(ALL) ALL

Ferner muss überprüft werden, ob auch das richtige Java verwendet wird. Unter debian ist /usr/bin/java ein Link zu /etc/alternatives/java, welches dann zu dem aktuell aktiven Java zeigt. Bei einer Standard-Installation zeigt /etc/alternatives/java zum falschen (gcj-)Java. Das muss geändert werden. Zusätzlich muss die Environment-Variable JAVA_HOME noch etabliert werden. Dies geschieht normalerweise auf Benutzerebene in der Datei .bashrc oder so. Damit die Variable aber auch für die Systemdienste gilt, muss sie in /etc/profile eingerichtet werden. Für beides ist root-Berechtigung erforderlich.

Als erstes muss herausgefunden werden, wo das jdk von sun installiert ist. Bei Debian liegt die Laufzeit-Umgebung unter /usr/lib/jvm/java-6-sun/jre/bin/java, was bedeutet, das /usr/lib/jvm/java-6-sun dem JAVA_HOME entspricht.

sudo ln -sfn /usr/lib/jvm/java-6-sun/jre/bin/java /etc/alternatives/java
sudo echo 'export JAVA_HOME="/usr/lib/jvm/java-6-sun"' >> /etc/profile
GANZ WICHTIG: in der zweiten Zeile 2 Winkel nach rechts verwenden, sonst ist das System hin. Also im Zweifel lieber einen Editor nehmen. Das geht z.B. auch so:
sudo vim /etc/profile

Ramdisk aufsetzen

Der Aufnahmescanner benötigt ein Verzeichnis für flüchtige Zwischendaten. Dies sollte idealerweise eine Ramdisk sein. Eine solche kann folgendermaßen unter Linux eingerichtet werden ...

Bei aktuellen Systemen kann tmpfs dafür verwendet werden. Dazu fehlt lediglich ein Eintrag in /etc/fstab:

none            /ramdisk        tmpfs   size=64m        0       0

Falls das nicht funktioniert, geht es konventionell so:

Zuerst gilt es zu prüfen, ob der kernel eine Ramdisk unterstützt:

ls -l /dev/ram*
Wenn die Anzeige positiv ausfällt, gilt es noch zu prüfen, welche Größe die Ramdisk sein darf (falls nicht, müssen wir später noch etas mehr tun):
dmesg | grep -i ramdisk
Die Größe sollte min. 64Mb entsprechen. Falls die Größe kleiner ist, ändern wir dies mit einem kernel-Parameter. Der wird in /boot/grub/menu.lst eingetragen:
kernel  /boot/vmlinuz-2.6.xxx root=/dev/sdxx ro quiet vga=791 ramdisk_size=64000
Wenn der Kernel-Parameter geändert, bzw. neu hinzugefügt wurde, sollte der Rechner neu gestartet werden, damit die Werte aktiv werden.

Falls noch nicht geschehen, muss das Verzeichnis für die Ramdisk angelegt werden:

mkdir /ramdisk
Nach jedem Neustart muss die ramdisk formatiert und eingebunden werden. Dies wird am besten in die /etc/rc.local eingetragen. Dazu laden wir /etc/rc.local in unseren Lieblingseditor und fügen (vor der Zeile "exit 0") folgendes ein:
mke2fs -m 0 /dev/ram0
mount -t ext2 /dev/ram0 /ramdisk
chmod og+w /ramdisk
Das -m 0 bewirkt, dass keine Blocks reserviert werden (wie sonst bei ext2 üblich).

Falls es keine Geräte ala /dev/ram* gegeben hat, müssen wir zumindest eines erzeugen. Das machen wir am Einfachsten auch über die Datei /etc/rc.local. Natürlich müssen wir das Gerät erzeugen, bevor wir es formatieren können, also kommen die folgenden Zeilen vor die gerade eingefügte Zeile mit "mke2fs ...". Insgesamt fügen wir also diese Zeilen ein:

mknod -m 660 /dev/ram0 b 1 1
chown root:disk /dev/ram0
mke2fs -m 0 /dev/ram0
mount -t ext2 /dev/ram0 /ramdisk
chmod og+w /ramdisk

Ausführen

Der Installer enthält Sprachtexte in Deutsch und English. Die Sprache kann ganz zu Anfang ausgewählt werden. Danach ist auszuwählen, welcher Dienst installiert werden soll. Je nach Auswahl unterscheidet sich die Abhängigkeit von externen Hilfsanwendungen. Zur Installation der Datenbank sollte der Installer auf dem Datenbank-Server ausgeführt werden.

Der Installer ist so aufgebaut, dass als erstes gefragt wird, ob eine Datenbank eingerichtet werden soll. Danach folgt die Auswahl der zu installierenden Dienste. Wer nur eine Datenbank einrichten mag, kann die Auswahl der Dienste leer lassen und trotzdem die Installation durchführen. Damit wird die Datenbank erstellt, bzw. deren Aktualität überprüft.

Nach dem Einrichten der Datenbank werden die ausgewählten Dienste installiert und die Ausführungsumgebung für die Dienste eingerichtet.

Der Installer protokolliert seine Aktionen in einer Logdatei und zeigt diese nach Beendigung seiner Arbeit an. So kann der Erfolg gleich kontrolliert werden.




 
change to english nach Deutsch wechseln