Software


LCDProc

Hierbei handelt es sich um eine Software, die als Daemon gestartet wird und verschiedenste LCD-Textdisplays ansteuern kann. An welchem Port das Display hängt und wie es angesteuert wird, bestimmt der jeweils eingesetzte Treiber. Es können auch mehrere Displays an einer oder mehreren Schnittstellen gleichzeitig betrieben werden.

Leider ist LCDProc nicht sehr übersichtlich programmiert, so muß man sich aus mehreren Versionen etwas zusammensuchen, was den gewünschten Nutzen hat.

Davon getrennt wird der LCDd von Clients angesteuert, die den Daemon bitten, etwas anzuzeigen. Es können mehrere Clients gestartet werden, der Daemon bestimmt, was (im Wechsel) angezeigt wird.

Display

Mein LCDProc-Client (Beispiel zum Download) ist ein perl-Skript und zeigt an, was die beiden DVB-Karten gerade machen, wie lange eine Aufnahme noch dauert, welches die nächste Aufnahme sein wird, und noch einiges mehr.


LIRC (Linux Infrared Remote Control)

LIRC mit Sendediode und EmpfängerEbenfalls eine nette Erfindung ist LIRC. Das Programm ist für den Empfang (und wenn gewünscht das Senden) von IR-Fernbedienungssignalen gedacht. Es scheint mir sehr ausgereift programmiert zu sein. Die angesteuerte Elektronik wird in meinem Fall an die serielle Schnittstelle angeschlossen und besteht aus ein paar Bauelementen, die etwa 5 DM wert sind. Das Foto links zeigt eine mögliche Version in einem kleinen Gehäuse, das direkt an die serielle Schnittstelle angeschlossen werden kann. Meine Variante ist allerdings direkt mit ins VDRBOX-Gehäuse eingebaut.

LIRC SchaltplanMan startet einen Daemon, welcher auf die IR-Signale reagiert. Zuvor hat man eine Konfigurationsdatei für die gewünschte Fernbedienung installiert bzw. erzeugt. Auf der LIRC-Homepage kann man auch eine Reihe von fertigen Konfigurationsdateien herunterladen.

VDR ist bei meiner VDRBOX zum LIRCd der Client und wird somit per Fernbedienung gesteuert.


Backlight Schaltplan ThumbBacklight

An der zweiten seriellen Schnittstelle hängt eine komplett selbst entworfene Elektronik, die mehrere Funktionen hat:

Das ganze wird über die beiden Leitungen RTS und DTR der seriellen Schnittstelle angesteuert.

Die LEDs hängen an einem binären Zähler (CMOS4040), so daß ich beide LEDs mit nur einer Signalleitung schalten konnte. Mit der zweiten Signalleitung wird die komplette Beleuchtung geschaltet.

CMOS4040ausführliche Infos zum CMOS-Baustein 4040
Sourcecode backlight.c
Sourcecode + Schaltplan + CMOS-Infos + Fotos (RAR, 70 KB)
CMOS4040



Belegung der seriellen Schnittstelle



Belegung des ATX-Netzteilsteckers (+5V liegt ebenfalls noch an vielen anderen roten Kabeln an)


Backlight Foto 1 Backlight Foto 2


LinuxTV LogoDVB-Treiber

Convergence LogoTreiber kann man auf der LinuxTV-Homepage herunterladen, welche in einer Zusammenarbeit zwischen Siemens und Convergence entstanden sind, soweit ich das verstehe. Convergence bietet eine komplette Palette von Linux-Software für SetTop-Boxen-Hersteller an, wobei einige untere Schichten OpenSource sind und deswegen auch in einer VDRBOX-Lösung wiederzufinden sind.


VDR Screenshot 1Video Disc Recorder (VDR)

VDR ist das zentrale Programm, welches die Aufnahme und Wiedergabe der Videos ermöglicht. Entwickelt wird es seit Anfang 2000 von Klaus Schmidtinger, wobei noch eine rege Weiterentwicklung stattfindet.

Gesteuert werden kann es durch eine angeschlossene Tastatur oder per IR-Fernbedienung, wenn man LIRC verwendet. Ich habe mich für die zweite Möglichkeit entschieden.


Alle Einstellungen und Aktionen stellt man über ein On-Screen-Display auf dem Fernseher bequem ein.

Die Steuerung erfolgt hauptsächlich durch "Pfeiltasten" und vier Farbtasten, die die momentan wichtigsten Funktionen auslösen.


In der c't Ausgabe 4/2001 stand ein zusammenfassender Artikel über VDR.


VDR Screenshot 2Kanaleinstellung und EPG

Kanäle können benannt und in Gruppen sortiert werden. Die im DVB-Standard (zusammenfassenden Text gibt es von Markus Kuhn) vorgesehene Technik für die Übertragung von Programminformationen nennt sich EPG (Electronic Program Guide). Dazu gehören Start- und Endzeiten der Sendungen und der Name der Sendung und eine kurze Inhaltsbeschreibung. Rechts im Bild sieht man einen erklärenden Text zur Sendung, der über EPG ausgestrahlt wurde.

Die EPG-Daten können in verschiedener Weise dargestellt werden. So kann man auflisten lassen, welche Sendungen momentan, als nächstes oder in nächster Zeit auf dem momentanen Kanal laufen (siehe oben).

Die EPG-Daten werden in einer Datei verwaltet. Wenn eine DVB-Karte mehrere Stunden nicht benutzt wird (einstellbar), fängt VDR an, durch die Kanäle zu springen und EPG-Daten aufzusammeln. So kann man annehmen, daß immer alle EPG-Infos vorliegen.

Allerdings sind die Fernsehsender nicht gezwungen, richtige oder überhaupt EPG-Daten zu übermitteln. Es gibt Sender, bei denen Zeiten und Sendungsnamen übermittelt werden, aber keine Inhalte und auch Sender, die gar keine EPG-Daten übermitteln.


VDR Screenshot 3Timer

Es können beliebig viele Timer eingegeben werden. Die Priorität wählt bei Überschneidungen die wichtigste Aufnahme aus. Die Lebensdauer bestimmt, welche Aufnahmen bei vollgelaufener Platte zuerst gelöscht werden. Als Aufnahmetag lassen sich der Tag des Monats als Nummer oder einzelne Tage einer Woche eingeben. So repräsentiert das rechts zu sehende M------- eine Aufnahme, die jeden Montag durchzuführen ist.

Am schnellsten läßt sich ein Timer eingeben, in dem man eine Sendung aus der Programmliste (siehe zwei Bilder weiter oben) auswählt. Start- und Endzeit werden automatisch um eine einstellbare Zeitspanne angepaßt, damit die Sendung bei verschiebungen aucgh komplett aufgenommen wird.

Auch gibt es die Möglichkeit, die gerade laufende Sendung mit einem einzigen Tastendruck im Hauptmenü aufzuzeichnen.


VDR Screenshot 4Wiedergabe

Für die Wiedergabe gibt es Pause, Zeitlupe, Bildsuchlauf, einminütiges Springen (um schnell Werbung überspringen zu können) und ein nettes OSD.

VDR beherrscht mit zwei Karten das sogenannte Time-Shifting. Das heißt, man kann den Anfang von einer Sendung, dessen Aufnahme noch läuft, schon anschauen. In diesem Fall würde bei der Wiedergabe die rechts im OSD zu sehende Endzeit auch weiterlaufen.


Schneiden

Es lassen sich Schnittmarken setzen und diese auch nachträglich verschieben. Danach kann man im Hintergrund eine weitere Version der angesehenen Sendung erzeigen, in der dann die markierten Teile fehlen. Durch den Schnittvorgangs wird der Rechner nicht belegt.


Verhalten bei Kollisionen, Optimale Ausnutzung

Eine der DVB-Karten wird als primäre gewählt. Auf dieser läuft auch das OSD-Display. Bei Aufnahmen wird immer versucht, möglichst nicht die primäre Karte zu belegen. Das heißt, daß zuerst die zweite Karte belegt wird, wenn eine neue Aufnahme startet und das Gerät vorher unbenutzt war. Erst wenn eine weitere (gleichzeitige) Aufnahme dazu kommt, wird auch die erste Karte zur Aufnahme verwendet (und damit für weiteres "blockiert").

Gibt es nun mehrere sich überschneidende Aufnahmen im Timer, wird jeweils die Aufnahme mit höchster Priorität aufgezeichnet. So kann ein "wichtigerer", einmalig zur Aufnahme eingestellter Film etwa Vorrang vor einer täglich ausgestrahlten Talkshow haben, die nur aufgezeichnet wird, wenn die VDRBOX ansonsten nicht benutzt wird.


Ansteuerung über Simple Video Disk Recorder Protocol (SVDRP)

VDR kann über einen Port per Telnet oder Skript von außen (außerhalb VDR auf demselben oder einem anderen Rechner) angesteuert werden. Einige der Befehle sind:

CHAN [ + | - | <number> | <name> ]

Kanal wechslen

GRAB <filename> [ jpeg | pnm [ <quality> [ <sizex> <sizey> ] ] ]

Abspeichern eines Screenshots (momentan angezeigtes Bild) als JPG- oder PNM-Grafik.

LSTC [ <number> | <name> ]

Auflisten der Kanäle

LSTT [ <number> ]

Auflisten der Timer

MESG [ <message> ]

Anzeige einer Nachricht auf dem On-Screen-Display

MODT <number> on | off | <settings>

Timer ändern

NEWT <settings>

Timer hinzufügen