Raspberry Pi: Live-Fernsehen mit tvheadend

Für den Raspberry Pi gibt es viele Einsatzmöglichkeiten. Eine davon: das Streaming eines DVB-Signals ins Netzwerk, um z.B. in Räumen ohne guten DVB-T-Empfang live Fernsehen zu können.

DVB-T und DVB-C gleichzeitig, gestreamt via tvheadend vom Raspberry Pi
DVB-T und DVB-C gleichzeitig, gestreamt via tvheadend vom Raspberry Pi

Was man dafür braucht: einen Raspberry Pi, einen DVB-T-Stick der von Linux unterstützt wird sowie einen passenden Client (wenn man nicht direkt XBMC auf dem Raspberry verwenden will) und einen USB-Hub, da die USB-Anschlüsse am Raspberry nicht genug Strom liefern. In meinem Fall verwende ich die Lösung, um meinen DVB-T-Stick mit Mac-OS-X nutzen zu können, wo er leider nicht direkt unterstützt wird.

Mittlerweile habe ich das Setup um DVB-C-Support erweitert, da der Kabelanschluss ungünstig im Wohnzimmer gelegen ist. So lässt sich digitales Kabelfernsehen einfach in mehreren Zimmern verteilen – zumindest wenn man sich auf unverschlüsselte Sender beschränkt. Man benötigt gar nicht mal viele Teile, die Kosten entstehen vor allem durch den USB-Stick für DVB-T oder noch teurer DVB-C. Wichtig ist vor allem der Linux-Support, sonst bekommt man ein Problem wenn man TVHeadend einsetzen will.

Einkaufsliste für Live-TV mit RaspberryPi
Folgende Teile werden benötigt, um diese Anleitung umsetzen zu können:

Installation des DVB-T-Sticks unter Raspbian

Ich verwende unter anderem einen Terratec Cinergy HT USB XE, dem zuerst einmal die passende Firmware fehlt (für den Sundtek MediaTV Pro III gibt es kompatible Treiber). Mittels eines kurzen Linux-Befehls (muss auf der Konsole ausgeführt werden)bekommt man eine Liste von Kernelmeldungen – dort ist auch verzeichnet, welche Firmware-Datei erwartet wird:

~# cat /var/log/dmesg

Auf linuxtv.org gibt es die entsprechenden Dateien, die passende wird einfach nach /lib/firmware kopiert, spätestens nach einem Neustart sind die Firmwares geladen und der DVB-T-Stick kann verwendet werden. In der dmesg-Ausgabe sollten nun keine Fehler bzw. fehlende Dateien um Zusammenhang mit dem Stick stehen. In meinem Fall sieht das Endergebnis so aus:

dvb-usb: found a 'Terratec Cinergy HT USB XE' in cold state, will try to load a firmware
dvb-usb: downloading firmware from file 'dvb-usb-dib0700-1.20.fw'
dib0700: firmware started successfully.
dvb-usb: found a 'Terratec Cinergy HT USB XE' in warm state.
dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
DVB: registering new adapter (Terratec Cinergy HT USB XE)
DVB: registering adapter 0 frontend 0 (DiBcom 7000PC)...
xc2028 1-0061: creating new instance
xc2028 1-0061: type set to XCeive xc2028/xc3028 tuner
xc2028 1-0061: Loading 80 firmware images from xc3028-v27.fw, type: xc2028 firmware, ver 2.7
Registered IR keymap rc-dib0700-rc5
input: IR-receiver inside an USB DVB receiver as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3.4/rc/rc0/input0
rc0: IR-receiver inside an USB DVB receiver as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3.4/rc/rc0
dvb-usb: schedule remote query interval to 50 msecs.
dvb-usb: Terratec Cinergy HT USB XE successfully initialized and connected.
usbcore: registered new interface driver dvb_usb_dib0700

Installation von tvheadend

tvheadend ist eine Software, die den DVB-Stick ansteuert und den Stream des jeweiligen Senders im Netzwerk bereitstellt. Außerdem gibt es einen elektronischen Programmführer (EPG), die Möglichkeit Aufnahmen zu timen (nur sinnvoll, wenn eine Festplatte am Raspberry Pi angeschlossen ist). Für Raspbian gibt es fertige tvheadend-Pakete, die sich einfach über aptitude installieren lassen: damit spart man sich den vorher nötigen Aufwand für das kompilieren aus den Quellen. Ist tvheadend installiert und gestartet, erreicht man unter http://<IP-des-Raspberry>:9981 die tvheadend-Oberfläche.

Konfiguration von tvheadend

tvheadend Sendersuchlauf: Auswahl der des Gebietes
tvheadend Sendersuchlauf: Auswahl der des Gebietes

Bevor man die Nutzung starten kann, muss man natürlich erst einmal einen Sendersuchlauf durchführen. Zwar gibt es in tvheadend regionsspezifische Vorgaben für den Suchlauf, bei mir in München hat es allerdings nur mit dem Default-Wert, der ein größeres Spektrum absucht, funktioniert.

tvheadend Senderliste
tvheadend Senderliste

Am Ende wurden 33 Sender gefunden, die überflüssigen die nur auf eine Mediathek verweisen werden dabei rausgefiltert, sodass man nur nutzbare Sender bekommt.

Über den Play-Link kann man entweder den Stream direkt im Browser öffnen (wenn das VLC-Plugin installiert ist) oder einen Link zu diesem bestimmten Stream bekommen, den man dann im VLC öffnen kann. Damit kann man, wenn auch noch etwas umkomfortabel, prüfen ob das Setup korrekt funktioniert und ein Live-Fernsehbild übertragen wird.

Wichtig: Die Uhrzeit auf dem Raspberry Pi muss richtig sein, ansonsten gibt es Probleme mit dem elektronischen Programmführer (EPG). Die einfachste Lösung ist ntpdate zu installieren, damit wird Datum und Uhrzeit beim Start des Raspberry korrekt gesetzt (sofern eine Internetverbindung vorhanden ist).

tvheadend mit DVB-C- und DVB-T-Tuner

tvheadend mit zwei Tunern auf Raspberry Pi: läuft.
tvheadend mit zwei Tunern auf Raspberry Pi: der kleiner Rechner kommt zwar an sein Limit, aber es funktioniert.


tvheadend ist in der Lage, mehrere Tuner anzusprechen. Dies bietet mehrere Vorteile: zum einen können zwei Clients unabhängig voneinander ein unterschiedliches Programm empfangen (oder man kann einen anderen Sender aufnehmen), zum anderen können Empfangsschwächen ausgeglichen werden (in meinem Fall funktioniert der Sender DMAX über DVB-C eher schlecht, via DVB-T dagegen ohne Probleme. Die Einrichtung ist dabei einfach: es werden schlicht beide DVB-Sticks konfiguriert, wobei jeweils bei dem die gewünschten Sender gemapped werden, über den sie empfangen werden soll. Die Clients bekommen davon dann nichts mit sondern erst einmal nur eine durchgehende Senderliste.

Zuerst war ich etwa skeptisch, ob der Raspberry Pi mit zwei Anspruchsvollen USB-Geräten umgehen kann, übertaktet auf 900 MHz scheint dies jedoch kein Problem zu sein. Auch das parallele Streaming auf iPhone und iPad mit zwei verschiedenen Sendern funktioniert so.

Clients für tvheadend

VLC als tvheadend-Client
VLC als tvheadend-Client

Verwendet man Windows, kann man mittels eines Plugins die Unterstützung für tvheadend nachrüsten. Alternativ dazu lässt sich auch XBMC verwenden (z.B. auch auf einer Android-TV-Box wie meiner ATV1200), eine entsprechende Anleitung wenn man tvheadend eingerichtet hat finden sich zum Beispiel hier. XBMC kann auch direkt auf dem Raspberry laufen, sodass dann über dem HDMI-Ausgang ein Live-TV-Bild ausgegeben wird.

Für iOS-Geräte benutze ich die App Blackbox, die zwar mit 5,99 Euro nicht zu den günstigsten gehört, aber problemlos mit tvheadend zusammenarbeitet.

DVB-C mit tvheadend: RTL in München

DVB-T und DVB-C gleichzeitig, gestreamt via tvheadend vom Raspberry Pi
DVB-T und DVB-C gleichzeitig, gestreamt via tvheadend vom Raspberry Pi

Mit Hilfe eines Sundtek MediaTV Pro III ist auch DVB-C-Support möglich. Damit wird zum einen das Problem gelöst, dass zwischen Kabelabschluss und Fernseher eine zu lange Strecke ist und keine passenden Kabel liegen und zum anderen empfängt man dann auch im Raum München wieder die Sender der RTL-Gruppe. Da der Raspberry Pi selbst kein Videobild darstellen muss sondern die Informationen nur durchreicht, reicht die Leistung dafür aus. Etwas überraschend: es funktioniert sowohl DVB-T als auch DVB-C parallel mit zwei USB-Sticks auf dem Raspberry Pi, man kann sogar zwei Sender gleichzeitig Streamen.

Ansonsten funktioniert die Lösung bereits sehr gut, auch wenn DVB-T natürlich auch in den anderen Räumen verfügbar ist ohne Probleme – es ging mir erst einmal darum, ein funktionierendes Setup zu bekommen. Das ist auch gelungen, ohne den Raspberry Pi deutlich übertakten zu müssen.

Für diejenigen, die noch mehr Leistung für ihren Heimserver wollen oder die noch andere Dienste ausführen wollen, sei dieser Beitrag empfohlen: . Tvheadend läuft auf dem Cubietruck genauso wie auf dem Raspberry Pi, verbraucht nur nicht so viel CPU-Leistung (dafür etwas mehr Strom).

Update 08.09.2014:
Die FireTV-Box von Amazon soll XBMC ebenfalls unterstützen, jedenfalls gibt es schon eine Anleitung dazu. FireTV mit XBMC klingt nach einer guten Kombination für einen HTPC-Client, der auch als TV-Client für tvheadend fungieren kann. Das Thema werde ich in Zukunft hier im Blog weiter verfolgt.

[amazon box=“B07ZV9C6QF“]

25 Kommentare

  1. Moin, sag mal wie sind denn die Erfahrung mit DVB-S2? Ich habe im Moment eher negatives gehört da der USB Port einfach nicht für Dauerbetrieb ausgelegt ist. Low-Budget hat sich halt im SD-Kartenleser und USB-Port bemerkbar gemacht.

    Ansonsten danke für die Anregungen, werde meinen Pi hoffentlich auch bald als Videorekorder und Streaminggerät einrichten können.

    Grüße
    Andreas

    1. Mit DVB-S2 habe ich es mangels Satelliten-Schüssel noch nicht ausprobiert – je nachdem wann der entsprechende Stick geliefert wird probiere ich aber noch 2013 DVB-C, welches ähnliche Datenraten haben sollte.

      Den Pi hatte ich eben schon – ansonsten lässt sich sowas natürlich auch mit mit jedem anderen Rechner realisieren, auf dem Debian läuft.

      1. Erstmal danke für die tolle Anleitung! Ich habe vorab die Frage gibt es noch andere Alternativen für DVB-C zum Sundtek MediaTV Pro III in Verbindung mit einem Pi? Du sprichst hier z.B. von „2013 DVB-C“, was genau soll das sein?

        1. Oh, das ist wohl etwas Missverständlich: zum Zeitpunkt des Kommentars hatte ich den DVB-C-Stick noch nicht, das 2013 bezog sich darauf, das ich es noch vor Silvester ausprobieren wollte.

          Ein anderer USB-Stick, der sowohl DVB-C als auch Linux problemlos Unterstützt und zusätzlich noch einen guten Support bietet ist mir jetzt nicht bekannt, ich musste auch erstmal nach dem Sundtek-Teil suchen.

          Dafür läuft er wirklich problemlos.

          1. Jetzt hab ich es verstanden, danke für die schnelle Antwort!

            Aktuell habe ich raspbmc laufen, würde tvheadend damit auch ordentlich laufen? Dem zugrunde liegt ja auch Debian aber dürfte mit dem XBMC Speicherintensiver sein.

            Falls nicht gibt es die Möglichkeit raspbian als zweites OS zu installieren und man kann beim Starten vom PI auswählen was er booten soll?

            Ich möchte tvheadend hauptsächlich zum Aufnehmen verwenden, Streamen ist für mich nur nice to have.

          2. Mit NOOBS (http://www.raspberrypi.org/downloads) geht das, da kann man verschiedene Distris parallel installieren (sofern die SD-Card groß genug ist).

            Was du auch auf jeden Fall brauchst, wenn der Pi direkt das Video ausgeben soll: die MPEG-2-Codes: http://www.raspberrypi.com/ (ansonsten wird der Hardware-Decoder nicht genutzt).

            Wenn du einen DVB-T-Stick hast könntest du es damit einfach ausprobieren ob tvheadend und Raspbmc gleichzeitig vernünftig laufen. Sollte aber eigentlich klappen.

          3. Die Idee mit dem DVB-T Stick ist gut, so einen hab ich noch irgendwo rumfahren. Werde es damit erstmal testen. NOOBS klingt auch gut, würde ich versuchen wenns mit Raspbmc nicht sauber laufen sollte. Die Keys habe ich bereits aktiviert.

            Danke für die Top Beratung, ich werde nach meinen ersten Versuchen berichten.

          4. Hat mit dem DVB-T Stick super funktioniert! Werde mir jetzt den Sundtek zulegen.

            Großes Lob an die Tolle Anleitung!

          5. Ja, der Sundtek-Stick lässt sich genauso einfach einrichten (sogar noch etwas einfacher, weil man den Treiber nicht suchen muss). Im Bezug auf tvheadend ist die Einrichtung dann aber identisch.

          6. Hallo. Ich bin relativ neu in dem Thema, deswegen eine Frage zu Beginn. Der angeführte Sundtek-Stick funktioniert also einwandfrei mit DVB-C und dem Pi? Möchte ihn an den Pi (mit USB Hub) anschließen und über den Pi LiveTV am TV genießen. Ist das, wie ich es verstehe lt. Blog, möglich?

            Muss ich etwas beachten – wie etwa übertakten oder Ähnliches?

            Danke für deine Hilfe.

          7. Jein – ich benutze es so, dass der Raspberry Pi mit tvheadend läuft und das Programm nicht direkt wiedergibt, sondern an andere Geräte im Netzwerk streamt. Theoretisch könnte der Pi auch beides gleichzeitig, dann aber nur mit gekauften Codecs und Overclocking – streaming selbst lastet ihn schon ziemlich aus. Man braucht also zwei Raspberry Pi, damit man alle Vorteile nutzen kann.

  2. Hi, versuche gerade auch den terratec cinergy ht usb xe auf einem raspberry zum laufen zu bekommen. Allerdings macht linux nurnoch den download erfolgreich danach fehlt ihm die xc3028-v27.fw datei. Damit bleibt der stick im cold state und kann damit in tvheadend nicht ausgewählt werden. Hat jemand eine Idee?

    gruß moriz
    Rasbian Wheezy
    Kernel 3.10

    1. Also du hast die .fw-Datei heruntergeladen? Hast du sie auch in das entsprechende Verzeichnis kopiert (/lib/firmware)? Das System kann die Datei nur aus dem Verzeichnis laden.

      1. So einen Schritt weiter. Hab den Stick ohne Probleme mit sudo apt-get install firmware-linux-nonfree zum laufen bekommen. Der Stick wird auch in TVHeadend, ohne aktiven hub, erkannt. Findet aber keine Services. Wenn ich einen aktiven hub dazwischen schalte, wird der Stick nicht mehr in TVHeadend gefunden.

          1. Jep, hab ganz neu gebootet. Er erkennt den Stick garnicht wenn er an einem Hub hängt. Hab jetzt 3 Hubs durchprobiert.

  3. Hallo, tolle Sache mit dem low Cost Raspi und DVB Stick per TvHeadend im gesamtem Heimnetz TV zu verteilen. Ich stehe vor der letzten Hürde nämlich TVHeadend auch über DNLA auf meinem Smart TV zu bekommen. LIve stream geht nicht (bisher) Im www habe ich gelesen das man die Senderliste manuell erstellen müsste und diese dann per DNLA zur Verfügung stellt.
    Hast du hierzu schon Erfahrungen sammeln können und ein paar Tips ?

    Grüße Tom

    1. Hm, das habe ich bisher nicht probiert – verwende XBMC auf einem Apple TV 2 als Client. Wusste bisher gar nicht, das man das auch über DLNA lösen kann – wenn ich dazu komme werde ich mir mir das mit TVHeadend und DLNA einmal anschauen.

    1. Das müsste ich mal ausprobieren – wenn geht das aber eh nur für die ÖR, die HD ohne Verschlüsselung senden. Für die Privatsender mit Verschlüsselung wird es nicht klappen.

Schreibe einen Kommentar zu Moriz Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.