Linux-Projekt, Teil 4: Preiswerter TV/Video-Server - Erweiterte Funktionen und Plug-Ins

16.12.2005
In diesem Teil der Workshop-Reihe fügen wir dem Video-Server die Sahnehäubchen hinzu: Fernbedienung, zusätzliche Plug-Ins und Steuerung per Webserver.

In den ersten beiden Teilen unserer Praxis-Reihe haben wir die DVB- und TV-Hardware eingerichtet und das Betriebssystem inklusive Backend aufgesetzt. Ebenso sind die Sender und der EPG eingerichtet.

In diesem Teil widmen wir uns den erweiterten Möglichkeiten der Planung von Aufzeichnungen. Zudem konfigurieren wir den Server für den Einsatz einer Fernbedienung und beschreiben die diversen Plug-Ins, die MythTV so bietet. Besonderes Schmankerl: Die Steuerung per Webserver.

TV anschauen und Aufnahmen planen

Damit ist auch die Konfiguration des Frontends abgeschlossen und Sie können die Funktionen von MythTV ausprobieren. Wechseln Sie also ins Hauptmenu des Frontends und wählen „TV“ und dann „Fernsehen“ aus. Je nach Einstellung erscheint direkt der zuletzt gewählte Sender oder der elektronische Programmführer.

Ist Letzteres der Fall, können Sie mit den Cursor-Tasten durch das aktuelle Programm blättern und sich einen Sender aussuchen. Mit der Taste „M“ wechseln Sie zum gewünschten Sender.

Einfache Aufnahmeoptionen

Drücken Sie stattdessen im EPG die Taste „I“, erhalten Sie zusätzliche Informationen zur gerade angewählten Sendung und ein Menu, über das Sie diese Sendung aufzeichnen können. Bei der Aufzeichnungsplanung haben Sie eine Reihe von Optionen:

Erweiterte Aufnahmeoptionen

Aber das sind „nur“ die einfachen Aufnahmeoptionen. MythTV lässt Ihnen fast beliebige Freiheit bei der Suche nach lohnenden Sendungen. Dazu wechseln Sie ins Hauptmenu von Mythfrontend und wählen „Aufnahmen planen“. Dort erhalten Sie eine Reihe von Untermenüs, in denen Sie nach verschiedenen Optionen auswählen können:

Fernbedienung einrichten

Auf Dauer macht die Bedienung von MythTV per Tastatur keinen Spaß. Zum Glück bietet das Paket Unterstützung für lirc. Die Einrichtung und Konfiguration von Lirc hängt von der verwendeten Fernbedienung ab, daher lässt sich kein allgemeingültiges Rezept angeben.

Beim in unserer Beispielkonfiguration verwendeten USB-Receiver Terratec Cinergy T² wird eine Fernbedienung mitgeliefert. Für diese findet sich im Kernel-Modul schon die notwendige Unterstützung. Dazu muss im Kernel allerdings unter „Device Drivers/Input Device Support“ das „Event Interface“ eingeschaltet sein. Im SUSE-Kernel ist das per Default der Fall, so dass wir uns darum keine Sorgen mehr machen müssen.

Zudem erzeugt der Treiber auch gleich einen symbolischen Link von /dev/input/ir auf die korrekte Event-Schnittstelle. Also reicht es, den lirc-Daemon mit den folgenden Parametern zu starten:

lircd -H dev/input -d /dev/input/ir

Lirc wird sich zunächst beschweren, dass er die Datei /etc/lircd.conf nicht finden kann. Um die für Ihre Hardware richtige Konfigurationsdatei zu finden, reicht im Allgemeinen eine kurze Suche auf Google.

Kopieren Sie die gefundene Datei nach /etc und starten lircd erneut. Nun sollte es zu keiner Fehlermeldung mehr kommen. Zum Testen der Konfiguration starten Sie das Programm irw. Wenn Sie dann testweise ein paar Tasten auf der Fernbedienung drücken, sollten die entsprechenden Bezeichnungen auf der Konsole erscheinen.

Lirc und MythTV verbinden

Der letzte Schritt ist die Zuweisung von Lirc-Events an MythTV-Kommandos. Dazu erzeugen Sie eine Datei namens ~/.mythtv/lircrc. Diese besteht im Wesentlichen aus Segmenten der Form:

begin
prog=mythtv
button=<Knopf auf der FB>
config=<Taste in MythTV>
end

Dabei ersetzen Sie <Knopf auf der FB> durch den der Fernbedienungstaste in Lirc zugewiesenen Namen, also beispielsweise LEFT oder OK. Die Zeichenfolge <Taste in MythTV> ersetzen Sie durch die passende Tastenbezeichnung, also beispielsweise Left oder Return.

begin
prog=mythtv
button=OK
config=Return
end

begin
prog=mythtv
button=LEFT
config=Left
end

Wenn Sie danach das Frontend starten, können Sie MythTV mit Ihrer Fernbedienung steuern. Eine Übersicht der Tastaturbefehle von MythTV finden Sie im Anhang des Artikels.

Add-ons

Neben der großen Flexibilität bei der Aufnahmeplanung bietet MythTV ein weiteres Plus: Es lässt sich durch Plug-ins erweitern. Auf der Homepage finden Sie gleich ein Paket mit einer Reihe nützlicher Erweiterungen. Zu diesen Plug-ins gehören:

Mit MythBrowser können Sie vordefinierte Webseiten aufrufen und am TV betrachten. Die Darstellungsqualität ist natürlich beschränkt, daher ist dieses Plug-in nur begrenzt nützlich.

Fotos schauen Sie über MythGallery an, einem Pendant zu den vielgefürchteten Dia-Abenden bei Freunden und Bekannten.

MythGame stellt eine Schnittstelle zu mame bereit, so dass Sie eine Reihe von altbekannten Spielen am TV spielen können.

Über MythMusic spielen Sie Ihre MP3-Sammlung ab. Es lassen sich beliebige Playlists erstellen.

MythNews ist ein RSS-Reader, mit dem Sie Ihre eigenen News-Kanäle zusammenstellen und abfragen können.

MythWeb ist kein direkt von MythTV aufrufbares Plug-in, sondern eine Reihe von PHP-Scripts. Ist auf dem Server ein Apache mit PHP installiert, können Sie sich die aktuellen Programmlisten auch per Browser auf einem entfernten Computer anschauen. Von dort können Sie Aufnahmen planen oder den Status des Systems abfragen.

MythWeather ruft für einen von Ihnen einstellbaren Ort die aktuellen Wetterdaten ab und stellt sie auf dem TV dar.

Installation der Plug-Ins

Um die Plug-ins zu installieren, entpacken Sie das tar-Archiv, konfigurieren die einzurichtenden Plug-ins und lassen die Programme erstellen:

tar -xjf mythplugins-0.18.1.tar.bz2
cd mythplugins-0.18.1
./configure --help

Wenn Sie beispielsweise nur MythWeather einrichten wollen, rufen Sie das Script wie folgt auf:

./configure --disable-all --enable-mythweather

Danach lassen Sie das oder die Plug-ins erstellen und installieren:

qmake mythplugins.pro
make
make install

MythWeb installieren

Lediglich bei MythWeb geht die Konfiguration anders vonstatten. Kopieren Sie das Unterverzeichnis mythweb in das Dokument-Root Ihres Webservers. Bei SUSE 10 ist das beispielsweise /srv/www/htdocs/. Editieren Sie die Datei /srv/www/htdocs/mythweb/config/conf.php und passen dort gegebenenfalls die Einstellungen an. Danach können Sie mit der URL http://localhost/mythweb/ das Web-Frontend aufrufen.

Voraussetzungen für einen erfolgreichen Einsatz von MythWeb sind neben Apache 2 und PHP ab Version 4 ein paar Einstellungen bei Apache. Zum einen sollte mod_rewrite eingeschaltet sein, zum anderen sollten Sie die Option AllowOverride für das Verzeichnis mythweb auf All setzen. Zudem benötigen Sie zwei Verzeichnisse, auf die Apache Schreibzugriff haben muss:

mkdir /srv/www/htdocs/mythweb/image_cache
mkdir /srv/www/htdocs/mythweb/php_sessions
chgrp -R apache /srv/www/htdocs/mythweb/image_cache
chgrp -R apache /srv/www/htdocs/mythweb/php_sessions
chmod g+rw /srv/www/htdocs/mythweb/image_cache
chmod g+rw /srv/www/htdocs/mythweb/php_sessions

Beachten Sie bitte, dass der Benutzer-Account, unter dem Apache läuft, von Distribution zu Distribution variiert. Überprüfen Sie hierzu /etc/httpd/httpd.conf. Unter SUSE 10 gehört Apache beispielsweise zur Gruppe www. Also wäre im obigen Listing apache durch www zu ersetzen.

Ausblick

MythTV befindet sich derzeit noch in der Entwicklung. Die aktuellen Subversion-Releases lassen auf einige spannende neue Features schließen, wie beispielsweise VoIP- und Chat-Integration. Allerdings sollten Sie sich, wenn Sie stressfrei TV schauen wollen, auf die Releases von der Homepage beschränken. So ist es uns in der Redaktion passiert, dass der Hauptentwickler mal schnell das Live-TV-Feature komplett abgeschaltet hat.

Wir werden uns in unregelmäßigen Abständen immer mal wieder dem Video-Server widmen. Beispielsweise, um MythGame einzubinden oder um neue Releases vorzustellen. (mha)

Tastaturbefehle

MythTV kennt eine Reihe von Tastaturbefehlen. Auf welche Tastatureingaben das Programm reagiert, hängt vom aktuellen Kontext ab.

mythfrontend allgemein

Cursor-Tasten

Navigation der Menümarkierung

Alt-F4

Applikation beenden

Leer/Return

Ausgewählten Menüpunkt aktivieren

P

Abspielen (im Menü „Aufzeichnung ansehen/löschen“)

D

Löschen (im Menü „Aufzeichnung ansehen/löschen“)

U

Details ansehen (in den Menüs „Aufzeichnung ansehen/löschen“, EPG, „Programm finden“ und in Suchergebnissen)

O

Zeigt spätere Folgen zur aktuell gewählten Sendung

I

Aufzeichnungsoptionen ansehen.

Tastatur bei Live-TV

Live-TV oder Aufzeichnung

Cursor nach oben/unten

Kanal wechseln

Zahlen

Direkte Eingabe der Kanalnummer

P

Pause / Play

C

Eingang auf der TV-Karte wechseln

ESC

Menü verlassen

I

OSD anzeigen

M

EPG aufrufen

Seite nach oben/unten

Springt um die voreingestellte Zeitspanne vor/zurück

Ende / Z

Springt zur nächsten Werbemarkierung

Pos1 / Q

Springt zur letzten Werbemarkierung

[ / F10

Leiser

] / F11

Lauter

/

Gehe zum nächsten als Favorit markierten Kanal

?

Aktuellen Kanal zu Favoriten hinzufügen / aus Favoriten löschen

W

Zwischen 4:3 und 16:9 umschalten

F8

Schlaf-Timer einschalten

+

Zwischen Audio-Kanälen umschalten

O

Nur bei Live-TV: Browse-Modus aktivieren

Y

Nur bei Live-TV: Zwischen TV-Karten umschalten

Eine komplette Liste aller verfügbaren Tastaturkommandos finden Sie in der Datei keys.txt im MythTV-Verzeichnis.

Benötigte Pakete

Um MythTV und die diversen Plugins erfolgreich zu kompilieren, benötigen Sie eine Reihe von Paketen. Hier finden Sie eine Übersicht:

Paket

Quelle

Grundsätzlich

Kernelsource

YaST

gcc

YaST

make, automake, autoconf

YaST

libtool

YaST

pkgconfig

YaST

xine-lib

Homepage

FLAC

Homepage

zlib-devel

YaST

aalib-devel

YaST

SDL-devel

YaST

libogg-devel

YaST

libmng-devel

YaST

XMLTV

XMLTV

Homepage, CVS

Perl

YaST

perl-DateManip

YaST oder CPAN

perl-XML-Writer

YaST oder CPAN

perl-libwww-perl

YaST oder CPAN

perl-html-tree

YaST oder CPAN

perl-XML-Xpath

YaST oder CPAN

perl-XML-Twig

YaST oder CPAN

MythTV

Homepage, SVN

mysql

YaST

alsa-tools

YaST

qt3-devel

YaST

qt3-mysql

YaST

alsa-devel

YaST

lame

Homepage

freetype2-devel

YaST

XOrg-devel

YaST

libavcodec, libavformat und libavutil

CVS

MythWeb

apache2

YaST

apache2-mod_php4

YaST

php4-mysql

YaST

MythGallery

libtiff-devel

YaST

MythMusic

libmad

Homepage

libid3tag

Homepage

libcdaudio

Homepage

cdparanoia

Homepage

MythDVD

libdvdread und deren Voraussetzungen

Homepage

liba52

Homepage