Home
 Projekte
 Dokumentation
 Downloads
 Mailinglisten
 Kontakt

 



Digitaler Linux-Videorekorder im Eigenbau, Teil 5

Scheibenweise

von Thomas Koch und Mirko Dölle

Ausgabe 10/2002


Die mitunter hohen Datenraten der VDR-Aufnahmen bescheren ein brillantes Bild auf dem Fernseher. Bei der Archivierung wird man aber zum sprichwörtlichen Diskjockey: fünf CDs pro Film ist keine Seltenheit. Wir zeigen Ihnen, wie Sie die Filme verkleinern.

Die Datenflut des Videorekorders ist immens: Bis zu 1,8 GByte pro Stunde schaufelt eine DVB-Karte auf die Festplatte. Wer die aufgenommenen Filme nicht nur einmal ansehen, sondern auch archivieren will, braucht aber ein dickes Fell. Die meisten Spielfilme füllen fünf bis sechs CDs, aber mit dem Brennen allein ist es nicht getan. Zunächst müssen die Filme geschnitten, dann die Video-Dateien verteilt und zu mehreren ISO-Images verarbeitet werden.

Wer nicht die von VDR gelieferte, mitunter hohe Qualität benötigt, kann die Filme als VCD oder SVCD speichern. Für die automatische Konvertierung wurde im aktuellen All-in-One-Patch [1] zu VDR [2] ein neues Tastenkommando eingebaut. Wie Sie den Patch einspielen und VDR übersetzen, haben wir im letzten Teil in Ausgabe 05/2002 ausführlich erklärt.

Die Konvertierung wird in zwei Schritte aufgeteilt: Der Benutzer wählt die zu konvertierenden Filme aus, die dann ein Cron-Job zu einer günstigen Zeit wie etwa jeden Morgen um vier Uhr in (S)VCD oder MPEG umwandelt. Zentrales Werkzeug dafür ist convert.pl Version 0.2 von [3]: Es führt die Liste der Filme und ruft die Konvertierungs-Tools auf.

Skript-Installation

Zur Installation entpacken Sie convert-0.2.tar.gz. Heraus kommt das Perl-Skript convert.pl, das Sie in das Konfigurationsverzeichnis von VDR kopieren -- meist /etc/vdr. Da VDR standardmäßig das Skript convert.sh aufruft, wenn ein Film konvertiert werden soll, benötigen Sie noch einen symbolischen Link:

ln -s /etc/vdr/convert.pl /etc/vdr/convert.sh

Nach der Installation müssen noch einige Variablen in convert.pl geändert werden. Hier ein Auszug der für uns wichtigen Variablen:

my $TODO_LIST       = "/etc/vdr/toconvert.txt";
my $TOSVCD_OPTIONS  = "-M -1"
my $TOSVCD_OUTPUT   = "/pub/film";
my $TOSVCD          = "/usr/bin/tosvcd";

In der hinter $TODO_LIST angegebenen Datei werden die Verzeichnisnamen aller Filme abgelegt, die konvertiert werden sollen. convert.pl arbeitet sie später nach einander ab und entfernt sie.

Die letzten drei Variablen sind Parameter für das eigentliche Konvertierungsprogramm tosvcd, auf das wir später noch genauer eingehen. Die Variable TOSVCD_OPTIONS enthält Konvertierungsoptionen, in diesem Beispiel werden so MPEG-1-Dateien anstatt von VCDs erzeugt. In TOSVCD_OUTPUT steht das Verzeichnis, in dem die fertig konvertierten Filme abgelegt werden, und in TOSVCD der Name und Pfad des Konvertierungsprogramms.

Cron-Job

Zum Start der Konvertierung wird convert.pl -q von Cron aufgerufen. Dazu tragen Sie folgende Zeile in der /etc/crontab ein:

0 4 * * * root /etc/vdr/convert.pl -q

Das Beispiel startet die Konvertierung täglich um vier in der Frühe. Um VDR nicht bei etwaig laufenden Aufnahmen zu stören, wird der eigentliche Konvertierungsprozess mit einer sehr niedrigen Priorität aufgerufen.

Treten bei der Konvertierung Fehler auf, bekommt Root die englische Fehlermeldung als Mail zu gestellt. Hier zwei Beispiele für mögliche Fehler:

/video0/Streit_um_Drei/Mit_Arbeitsrichter_Ulrich_Volk/2002-08-30.15.05.50.50.rec does not exist. \
Recording has been removed from /etc/vdr/toconvert.txt!

Error while running "/usr/bin/nice -n 19 /usr/bin/tosvcd  -o "/video0/cdrecord/bullyparade" \
"/video0/%bullyparade/2002-07-22.21.43.50.50.rec" >/dev/null 2>/dev/null". Recording has \
been removed from /etc/vdr/toconvert.txt!

Die erste Meldung besagt, dass die Aufnahme zum Zeitpunkt der Konvertierung bereits gelöscht oder umbenannt war, bei der zweiten ist das Konvertierungsprogramm tosvcd auf Probleme gestoßen. Was bei tosvcd schlief liegt, bekommen Sie praktisch nur heraus, in dem Sie von Hand als Root /etc/vdr/convert.pl -q oder direkt den in der Fehlermeldung genannten tosvcd-Aufruf.

Handhabung

Um einen Film für die automatische Konvertierung auszuwählen, gehen Sie mit dem farbigen Balken im Aufzeichnungs-Menü (Abbildung 1) auf die Sendung und drücken die Taste "1". Es erscheint dann kurz die Meldung "zur Konvertierungsliste hinzugefügt" in einem grünen Balken. Eine Bearbeitung der Konvertierungsliste /etc/vdr/toconvert.txt ist derzeit von VDR aus nicht möglich, dazu müssen Sie einen gewöhnlichen Texteditor bemühen und die betreffende Zeile einfach löschen. Das kann auch geschehen, während convert.pl gerade mit einer anderen Aufzeichnung beschäftigt ist.


Abb. 1: Wird in der Aufzeichnungs-Liste die Taste "1" auf der Fernbedienung gedrückt, wird der aktuell unterlegte Film für die Konvertierung eingetragen.

Das Ergebnis der Konvertierung, ob VCD-Image oder MPEG-Datei, erhält den Namen des Films. Einzig Prozent-Zeichen werden herausgefiltert, Teile der Konvertierungsstrecke haben damit Probleme.

To-SVCD

Zentrales Konvertierungs-Tool für convert.pl ist das Programm tosvcd. In der aktuellen Version 0.6 von [4] beherrscht es MPEG-2-Dateien, SVCD-Images, MPEG-1-Dateien und VCD-Images. Welches Ergebnis bei der Konvertierung entsteht, entscheiden die Parameter "-M" und "-1". Mit "-M" ist das Ergebnis stets eine MPEG-2-Datei, ganz ohne Parameter erzeugt tosvcd SVCD-Images. Der Parameter "-1" steht für MPEG-1, das Ergebnis ist also entweder ein VCD-Image (nur "-1") oder eine MPEG-1-Datei (Parameter "-M -1").

Da tosvcd bei keiner aktuellen Distribution mitgeliefert wird, muss das Programm von Hand übersetzt werden. Dafür sind keine speziellen Bibliotheken nötig, auf einer SuSE 8.0 mit den Standard-Entwicklungspaketen lief das Kompilieren durch den simplen Aufruf von make durch. Das fertige Programm wird in /usr/bin/tosvcd installiert.

Für die Konvertierung benötigt tosvcd noch einige der "mjpegtools", und vcdimager für (S)VCD-Images. Diese Programme werden jedoch automatisch aufgerufen, so dass Sie sich nicht mit den teils komplizierten Aufrufen beschäftigen brauchen.

Lediglich das Brennen der (S)VCD-Images mittels cdrdao muss weiterhin in Handarbeit erfolgen. Eine detaillierte Anleitung zur Installation der Zusatzprogramme sowie deren Handhabung finden Sie im Artikel "Futter für den DVD-Player" in Ausgabe 08/2002.

Handarbeit

Natürlich lässt sich tosvcd auch von Hand einsetzen. Der Aufruf hat stets die Form:

tosvcd [Parameter] -o [Prefix der Ausgabedatei(en)] [Verzeichnis der "???.vdr"-Dateien]

Die möglichen Parameter für tosvcd finden Sie in Tabelle 1. Die meisten davon werden Programmen aus den "mjpegtools" mit übergeben, tosvcd. Die Konvertierung eines rund 10 Minuten langen Films dauert auf einem Pentium-III mit 750 MHz 20 bis 25 Minuten, bei einem abendfüllenden Film ist der Rechner schnell mehrere Stunden beschäftigt. Deshalb ist es meist praktischer, die automatische Konvertierung zu verwenden. (mdö)

Tabelle 1: Parameter von tosvcd
-V Versionsnummer
-v "verbose", ausführliche Ausgaben
-o Prefix Der Name der konvertierten Datei oder Dateien beginnen mit Prefix und werden je nach Typ mit Endungen versehen.
-q Nr Qualität des konvertierten Films im Bereich von 1 bis 31. 1 ist die beste Qualität.
-s Nr Größe des CD-Rohlings in Megabytes. Standard sind 800 MByte (90-Minuten-Rohlinge)
-m Für Schwarz-Weiß-Filme, kann eine bessere Kompression bedeuten.
-w Nr Entfernt das vierfache der angegebenen Zeilen vom oberen und unteren Bildrand. Spart Platz bei Breitbild-Filmen.
-n "denoise"-Filter, beseitigt teilweise Bildstörungen bei hohen Kompressionen
-c Nr Anzahl der zu erzeugenden CDs
-k Löscht die zur Konvertierung benötigten temporären Dateien nicht.

Infos
[1] All-in-One-Patch vom 14.08.2002 für VDR 1.0.4: http://linvdr.org/download/VDR-AIO/vdr-1.0.4-AIO-14.08.diff.gz
[2] VDR 1.0.4: ftp://ftp.cadsoft.de/pub/people/kls/vdr/vdr-1.0.4.tgz
[3] Konvertierungs-Skript convert.pl: http://linvdr.org/download/vdr-convert/convert-0.2.tar.gz
[4] tosvcd Version 0.6: http://linvdr.org/download/tosvcd/tosvcd-0.6.tar.bz2


Zuletzt geändert am 01.01.1970