Thorstens private Homepage
TV Streaming Server
http://privat.thorsten-kunkel.de/tv-streaming-server.html

© 2014 Thorstens private Homepage
http://privat.thorsten-kunkel.de
Thorstens private Homepage
Berge, Cachen und mehr...

RasPi und WinTV-HVR-930C als TV Streaming Server

Da der RasPi schon eingetroffen war und der CUL für die Heimautomation noch auf dem Postweg war, musste eine andere Beschäftigung für die kleine Maschine her. Mir fiel ein, dass noch ein DVB-T-Stick herumlag und der Wunsch nach leichterem Zugang zum öffentlich-rechtlichen Fernsehen im Haushalt gewünscht war. Was lag also näher als einen In-House-Server für TV-Streaming aufzubauen. Meine Erfolge und Schwierigkeiten dokumentiere ich in diesem Artikel. Sollten Fragen zum Vorgehen auftauchen, könnt ihr euch gerne per Mail bei mir melden.

 

Benötigte Hardware

 

Installation von RasPi und Firmware

  • SD-Karte mit Raspbian bestücken. Eine gute Anleitung befindet sich hier. Perl-Pakete und FHEM müssen natürlich nicht installiert werden! Bitte darauf achten, eine wirklich aktuelle Version zu verwenden. Der Kernel muss mind. Version 3.10 haben, damit der DVB-Stick erkannt wird (im Zweifel uname -r ausführen).
  • Firmware für WinTV 930c auf dem Raspberry Pi herunterladen und entpacken
  • Installieren mit den folgenden beiden Befehlen (Quelle):
    • dd if=HVR-900/emOEM.sys of=dvb-usb-hauppauge-hvr930c-drxk.fw bs=1 skip=71600 count=42692
    • cp dvb-usb-hauppauge-hvr930c-drxk.fw /lib/firmware/
 

Weitere Firmware für xc5000 (z.B. von http://www.kernellabs.com/firmware/xc5000/dvb-fe-xc5000-1.6.114.fw) besorgen und in das Verzeichnis /lib/firmware verschieben (siehe auch http://www.linuxtv.org/wiki/index.php/Hauppauge_WinTV-HVR-950Q).

Man kann das Ergebnis dieser Schritte prüfen, wenn man den DVB-Stick neu einsteckt oder den RasPi neu startet und mit dmesg die Kernel-Meldungen anzeigt. Dort sollte der 930C erkannt werden und es sollten auch keine Fehler bei der Erkennung auftreten.

 

Installation des Streaming Servers Tvheadend

Es gibt die Möglichkeit die aktuellen Sourcen aus dem GIT zu kompilieren. Ich habe es vorgezogen Tvheadend als Paket zu installieren. Hierfür führt man die folgenden Befehle aus, die ich aus dem sehr guten Tutorial http://www.forum-raspberrypi.de/Thread-tutorial-tvheadend-server entnommen habe:

  • echo "deb http://apt.tvheadend.org/stable wheezy main" >> /etc/apt/sources.list
  • wget http://apt.tvheadend.org/stable/repo.gpg.key -O - | sudo apt-key add -
  • apt-get update
  • apt-get install tvheadend

Das war bei mir auf dem Raspberry Pi völlig ausreichend, um Tvheadend als Dienst zu installieren. Ggf. muss man den Dienst starten mit /etc/init.d/tvheadend start (stoppen geht analog mit /etc/init.d/tvheadend stop).

Wenn diese Schritte erfolgreich verlaufen sind, dann lässt sich Tvheadend jetzt unter http://ip_des_raspi:9981 ansprechen.

 

Konfiguration von Tvheadend

In der Dokumentation von Tvheadend unter https://tvheadend.org/projects/tvheadend/wiki/Documentation lässt sich in aller Kürze ein Einstieg in den TV Streaming Server finden. Wenn man DVB-C mit dem WinTV-HDR-930C nutzen will hat man auch Glück und die Konfiguration sollte out-of-the-box funktionieren. Anders bei DVB-T als gewünschtem Medium. Denn Tvheadend wählt standardnäßig einfach immer DVB-C aus und die ganze Konfiguration von Multiplexes und Kanälen war bei mir nach jedem Neustart immer wieder verloren.

Sehr sinnvoll - auch für DVB-C-Nutzer - ist daher der Befehl w_scan, der sich zum Scannen der Kanäle eignet. Die Installation erfolgt mit dem Befehl:

sudo apt-get install w_scan dvb-apps

Der Scan für DVB-T in Deutschland funktioniert dann so (ausführliche Anleitung steht unter  http://www.vdr-wiki.de/wiki/index.php/W_scan):

w_scan -c DE -ft

Es sollten Multiplexe gefunden werden und am Ende sollten gefundene Kanäle aufgelistet werden. Wenn hier keine Kanäle gefunden werden, dann hat man mit Tvheadend wahrscheinlich auch schlechte Karten und man sollte auf Fehlersuche gehen.

War der Scan erfolgreich, dann sollte der obige w_scan-Befehl (für DVB-T) in die Datei /etc/init.d/tvheadend eingefügt werden. Ich habe sie direkt vor do_start() eingebaut und es funktioniert. Man erreicht damit, dass Tvheadend bereits beim Start auf DVB-T umschaltet und alle Multiplexe und Kanäle wieder gefunden werden.

 

TV Streaming Client

Neben dem Server für das TV Streaming braucht man natürlich auch noch den Client, der den TV Stream decodiert und anzeigt. Hierfür verwende ich auf dem Notebook XBMC (http://xbmc.org/). Man muss in XBMC das PVR Add-on für Tvheadend aktivieren, was aber kein größeres Problem darstellt. Ggf. kann die Seite http://wiki.xbmc.org/index.php?title=PVR/Backend/Tvheadend helfen.

Auf iOS-Geräten (iPad und iPhone) hat sich die Kombination von TvhClient und VLC als nützlich erwiesen. Beide lassen sich über den App-Store laden. TvhClient bietet das Fernsehprogramm an und bei Auswahl einer Sendung kann der entsprechende Stream direkt im VLC geöffnet werden (über Play --> VLC).