Linux-Projekt, Teil 3: Preiswerter TV/Video-Server - Backend und EPG einrichten

13.12.2005
Ohne elektronischen Programmführer macht TV am Computer nur halb so viel Spaß. Der dritte Teil des Workshops erweitert den TV-Server um einen EPG.

In den ersten beiden Teilen unserer Praxis-Reihe haben wir die DVB- und TV-Hardware eingerichtet und das Betriebssystem inklusive Backend aufgesetzt. Sprich, prinzipiell lässt sich über Programme wie Kaffeine bereits TV am Computer anschauen.

Jetzt geht es an das Fein-Tuning des Backends. Zudem richten wir die Sender-Informationen und den elektronischen Programmführer ein, ohne die es nicht möglich wäre, Sendungen automatisch aufzuzeichnen.

MythTV-Backend

Starten Sie mythtv-setup, um das Backend einzurichten. Zunächst werden Sie nach der gewünschten Sprache gefragt. Danach erhalten Sie die Möglichkeit, bestehende Einstellungen für TV-Karten und Sender zu löschen. Beim initialen Einrichten ist das belanglos, später kann sich das aber als hilfreich erweisen.

Nun gelangen Sie zum eigentlichen Setup. Hier haben Sie fünf Menüpunkte zur Auswahl, die Sie nacheinander abarbeiten sollten. Generell können Sie hier mit den Cursor-Tasten navigieren. Nach oben und unten wählen verschiedene Menüpunkte an, nach links und rechts verändern Werte.

Erreichbarkeit des Backend

Unter „1. Allgemeines“ legen Sie zunächst fest, unter welcher IP-Adresse das Backend laufen soll und wo gegebenenfalls das Master-Backend zu erreichen ist. Normalerweise ist das die IP-Adresse dieses Backends. Wollen Sie mehrere Backends einsetzen oder Back- und Frontend auf getrennten Rechnern laufen lassen, verwenden Sie bitte die echte IP-Adresse statt der 127.0.0.1.

Im folgenden Screen stellen Sie ein, wie das System mit gespeicherten Video-Daten umgehen soll: In welchen Verzeichnissen die Videos gespeichert werden, wie groß der Puffer für Live-TV sein soll. Dieser sorgt dafür, dass Sie zurückspulen oder mitten in einer Sendung auf Pause drücken können.

Zu guter Letzt lässt sich festlegen, ob MythTV nach der Konvertierung oder Bearbeitung einer Video-Datei das Original löschen oder behalten soll. Zu den Möglichkeiten bei der Umwandlung gehören beispielsweise das automatische Entfernen von Werbung, die Umwandlung in ein anderes Format oder das Anwenden bestimmter Filter zur Qualitätsverbesserung.

Globale Einstellungen

Der nächste Screen legt globale Backend-Einstellungen fest. Hier stellen Sie ein, welche Video-Norm (PAL) gelten soll und nach welcher Norm die Austastlücke zu verarbeiten ist (PAL Teletext). Hier können Sie auch einen Faktor konfigurieren, um den die von XMLTV gelieferten Sendezeiten korrigiert werden. Das ist wichtig, wenn die Systemuhr beispielsweise auf eine andere Zeitzone eingestellt ist.

Danach können Sie konfigurieren, ob und wie der Rechner bei Inaktivität ausgeschaltet werden soll, um Strom zu sparen. In der obersten Option stellen Sie ein, welches Kommando direkt nach dem Hochfahren des Backends ausgeführt werden soll.

„Auf Frontend warten“ ist für den Fall gedacht, dass das Backend von einem entfernten Frontend gestartet wird. Dann würde das Backend nur heruntergefahren, falls sich inzwischen ein Client verbunden und wieder getrennt hat. Damit soll verhindert werden, dass das Backend schon wieder herunterfährt, obwohl noch ein Client „erwartet“ wird.

Generell findet die automatische Abschaltung nach folgenden Regeln statt, die für eine konfigurierbare Zeitspanne (Leerlaufzeit) zutreffen müssen:

Dann wird das unter „Weckzeit setzen Befehl“ konfigurierte Programm aufgerufen, um das Aufwachen sicherzustellen.

Automatisch aufwecken

Hier könnte beispielsweise nvram-wakeup oder wakeup-clock zum Einsatz kommen. Danach fährt das Master-Backend alle Backends herunter und sich selbst mit dem unter „Abschaltprogramm“ eingestellten Befehl - per Default steht hier sudo /sbin/halt -p. Wichtig ist hier der Parameter „Startzeit“. Mit diesem legen Sie fest, wie viel Zeit Ihr System zum Booten benötigt. Schließlich muss das System ja rechtzeitig hochgefahren werden, damit die Aufzeichnung pünktlich beginnt.

Im nächsten Fenster können Sie Wake On LAN (WoL) für die Slave-Backends konfigurieren. Da unser System aus nur einem Backend besteht, benötigen wir diese Optionen nicht. Auch mit den Optionen auf den weiteren Bildschirmen müssen wir uns zunächst nicht weiter beschäftigen. Sie betreffen vor allem die automatische Weiterverarbeitung von aufgezeichneten Sendungen.

TV-Karten einrichten

Vom Hauptmenu aus geht es dann über „2. TV-Karten“ zur Einrichtung der TV-Karte(n). Wählen Sie den Punkt „Neue Karte“ mit Return aus und im folgenden Screen mit den Cursor-Tasten den Kartentyp. Im Beispiel ist das eine DVB-Karte.

Mit Cursor-Down gelangen Sie zur nächsten Einstellmöglichkeit - der Kartennummer. Linux kann problemlos mit mehreren DVB-Devices gleichzeitig umgehen. Die einzelnen Geräte werden ab „0“ durchnummeriert. Damit sind Sie in diesem Dialog auch schon fertig.

EPG einrichten

Als Nächstes wählen Sie im Hauptmenu „3. Videoquellen einrichten“. Diese Überschrift ist ein wenig irreführend. Eigentlich stellen Sie hier nämlich ein, wie die Programminformationen ins System gelangen. Lassen Sie eine neue Quelle erstellen und geben ihr einen Namen - beispielsweise „DVB“. Als XMLTV-Script selektieren Sie Germany (tvtoday).

Wenn Sie nun „Fertig“ anwählen, müssen Sie mit Alt-Tab zum Terminalfenster wechseln. Dort nehmen Sie die grundlegende Konfiguration von XMLTV vor. Im Wesentlichen stellen Sie nur ein, welche Sender das Perl-Script abrufen soll, indem Sie „yes“ oder „no“ bei jedem Sender eingeben. Den Hinweis, dass Sie später unbedingt „mythfilldatabse --manual“ aufrufen sollen, können Sie getrost ignorieren.

Nun sind noch Video-Quelle und TV-Karte miteinander zu verknüpfen. Dazu rufen Sie aus dem Hauptmenu den Punkt „4. Verknüpfungen“ auf. Dort weisen Sie der DVB-Karte die Video-Quelle namens „DVB“ zu. Stellen Sie zudem noch den Wert von „Eingangskanal“ auf 1. Die Default-Einstellung hat mit einer Besonderheit des amerikanischen TV-Verhaltens zu tun. Dort gibt man nämlich zum Zappen nicht den Programmplatz ein, sondern gleich die Kanalnummer.

Sender bearbeiten

Ist das erledigt, wechseln Sie in das Menu „5. Sender bearbeiten“. Jetzt geht es endlich an die Konfiguration der Sender. Dazu benötigen Sie zunächst eine Datei, die Kaffeine schon für Sie besorgt hat. Wechseln Sie mit Alt-Tab zurück zu Ihrem Desktop und öffnen aus dem Verzeichnis ~/.kde/share/apps/kaffeine/dvb-t die für Ihre Region zuständige Konfigurationsdatei, also beispielsweise de-Muenchen für München. Die Datei enthält Einträge der Form:

T <Frequenz> <xMhz> <Wert> <Wert> <QAMxx> <xk> <Wert> <Wert>

Wechseln Sie nun wieder zu mythtv-setup und wählen den Punkt „Erweitert“ und danach „(New transport)“ an. Tragen Sie bei Frequenz den Wert aus der entsprechenden Zeile ein. Bei „Bandbreite“ stellen Sie den Eintrag aus der dritten Spalte ein, bei „Konstellation“ den der sechsten Spalte und bei „Trans Mode“ den der siebten Spalte. Danach wählen Sie „Fertig“ an. Das wiederholen Sie für jede Zeile in der Datei.

Sender suchen lassen

Danach können Sie MythTV nach verfügbaren Sendern suchen lassen. Wählen Sie dazu den Punkt „Sendersuchlauf“ aus. Im folgenden Bildschirm stellen Sie „Scantyp“ auf „Full Scan of existing Transports“ um. Wenn Sie mehrere TV-Karten im System haben, ist zusätzlich die zu scannende Karte einzustellen. Nach knapp zwei Minuten sollte MythTV alle Sender gefunden haben.

Jetzt wartet ein Stück mühseliger Handarbeit auf Sie. Sie haben zwar eine Senderliste, aber die Programmplätze sind willkürlich verteilt und MythTV weiß auch noch nicht, welche XMLTV-Daten es welchem Sender zuordnen soll. Deshalb ist jetzt jeder Sender händisch anzupassen.

Senderliste anpassen

Vorher brauchen Sie aber noch ein paar Informationen von XMLTV. Wechseln Sie dazu mit ALT-Tab zu einer Shell und rufen folgenden Befehl auf:

tv_grab_de_tvtoday --config-file ~/.mythtv/DVB.xmltv --list-channels > testlist.xml

Mit dieser Anweisung wollen wir im Prinzip nur ermitteln, welche internen IDs XMLTV für die verschiedenen Sender vergeben hat. Also öffnen Sie die Datei testlist.xml mit einem Editor.

Wechseln Sie zurück zu mythtv-setup und wählen den Kanal an, der auf Ihrem ersten Programmplatz erscheinen soll, beispielsweise die ARD, die sich selber als „Das Erste“ kennzeichnet. Ändern Sie das Feld „Platz“ auf den Wert 1. Der nächste wichtige Punkt ist die Konfiguration des EPG für diesen Sender. Momentan ist er per Default auf DVB eingestellt – sprich, MythTV holt sich die Programminformationen aus dem DVB-Datenstrom. Der große Nachteil dieser Variante ist, dass die Daten nur für wenige Tage im Voraus verfügbar sind und meist auch sehr kurz gehalten sind. Aus diesem Grund haben wir XMLTV installiert, das erheblich ausführlichere Programminformationen liefert.

Sender editieren

Schalten Sie also „EPG über DVB benutzen“ ab und tragen bei „XMLTV ID“ die von XMLTV für diesen Sender vergebene ID ein. Dazu suchen Sie in der Datei testlist.xml den Eintrag für diesen Sender. In diesem Fall also

<channel id="ard.de">
<display-name lang="de">ARD</display-name>
</channel>

Die gesuchte ID findet sich im Attribut id des XLM-Eintrags, also „ard.de“.

Das sollten Sie für alle Sender durchführen. Eine Ausnahme bildet BR-alpha, für das in XMLTV keinerlei Informationen hinterlegt sind. Hier lassen Sie einfach die Option „EPG über DVB benutzen“ eingeschaltet.

Geteilte Kanäle

Eine Gewissensentscheidung gilt es bei geteilten Kanälen zu treffen, wie beispielsweise ZDF Info/3Sat oder ZDF Doku/Kika. Hier sendet der eine Kanal tagsüber und der andere abends. XMLTV hat dafür keine Vorentscheidungen getroffen, daher können Sie entweder auf den EPG über DVB zurückgreifen, denn dieser wird entsprechend ausgestrahlt, oder Sie müssen sich eine eigene Lösung stricken. Optional können Sie natürlich auch nur die EPG-Daten eines der beiden Sender über XMLTV einfließen lassen.

Nun sind alle Vorbereitungen getroffen, um die elektronischen Programmdaten in die Datenbank einzuspielen:

mythfilldatabase --update

Das kann eine ganze Weile dauern, da das Script zunächst die entsprechenden Webseiten holen und dann analysieren muss. Wenn das Script fertig ist, haben Sie den EPG für die nächsten Tage in der MySQL-Datenbank.

Mythfrontend

Das Backend ist in den wichtigsten Grundzügen eingerichtet, jetzt geht es an das Frontend. Dazu starten Sie zunächst das Backend

mythbackend &

und danach das Frontend

mythfrontend

Im Grunde könnten Sie jetzt schon loslegen und TV schauen. Aber dann würden Sie nur einen Bruchteil der Funktionen von MythTV nutzen. Also geht es zunächst wieder an die Konfiguration. Rufen Sie im Hauptmenu des Frontends den Punkt „Zubehör/Konfiguration“ und dann „Konfiguration“ auf.

Unter „Erscheinungsbild“ verändern Sie die Optik von MythTV. Dabei legt der Punkt „Thema“ das generelle Verhalten und Aussehen fest. Zusätzliche Themenpakete können Sie von der MythTV-Homepage herunterladen oder über Subversion direkt aus den Entwickler-Sourcen. Dort findet sich beispielsweise ein Thema, das an Windows MCE angelehnt ist.

Lokalisierung

Klicken Sie weiter, bis Sie zum Punkt „Lokalisierung“ kommen. Hier stellen Sie ein, dass MythTV auch deutsche Uhrzeiten und Datumsformate anzeigt.

Die übrigen Punkte können Sie derzeit so belassen, wie sie sind. Bei den „Grundeinstellungen“ blättern Sie durch bis „Mythfilldatabase“. Hier legen Sie fest, dass das Programm automatisch gestartet werden soll. Den Pfad können Sie so belassen. Lediglich bei Argumente tragen Sie ein „--update“, damit von XMLTV neu gefundene Sender nicht automatisch in die Datenbank eingetragen werden.

Die nächsten Einstellmöglichkeiten legen fest, wie oft die Datenbank aktualisiert werden soll und zu welchen Zeiten das zu erfolgen hat. Am besten lassen Sie das Programm täglich laufen („Run Frequency“ auf 1), und zwar zwischen ein und vier Uhr morgens. Zu diesem Zeitpunkt dürfte der Webserver noch nicht allzu belastet sein.

Aufnahmen konfigurieren

Für den nächsten Schritt wechseln Sie in das Menu „TV“ und dort „Allgemeines“. Da die Sender nicht immer genau auf die Sekunde mit dem Programm beginnen, sollten Sie bei „Vorzeitiger Aufnahmestart“ einen Wert von 60 Sekunden angeben. Dasselbe gilt für „Verspätetes Aufnahmeende“. Die restlichen Einstellungsseiten belassen Sie erst einmal in den Voreinstellungen.

Bei „Programmübersicht“ legen Sie Erscheinung und Verhalten des elektronischen Programmführers fest. Die Default-Einstellungen sind für den Anfang allerdings ausreichend.

Unter dem Punkt „Wiedergabe“ legen Sie beispielsweise den Deinterlace-Filter fest, der die TV-Ausgabe am Monitor etwas verbessert. Die nächsten Seiten sind zunächst nicht relevant. Wenn Sie den TV-Ausgang einer Hauppauge PVR-350 nutzen wollen, nehmen Sie die entsprechenden Settings auf der Seite „Hardware Dekoder-Einstellungen“ vor. Ansonsten können Sie bis zur Seite „On-screen display“ weiterblättern.

Hier konfigurieren Sie Optik und Verhalten des einblendbaren OSD. Auch beim OSD können Sie zwischen verschiedenen Varianten wählen. Allerdings gibt es keine Vorschau wie beim generellen Thema, so dass nur Probieren hilft.

Ausblick

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.

Im nächsten Teil beschäftigen wir uns dann mit der Aufnahmeplanung und den erweiterten Features von MythTV, wie beispielsweise den Plugins und der Steuerung per Fernbedienung. (mha)