Media-Center mit Raspberry Pi und OpenELEC

Eigentlich wollte ich in dieser Woche die Fortsetzung der Reihe über InfluxDB auf dem Raspberry Pi schreiben, momentan fehlt noch der Beitrag über die Auswertung und Darstellung der gesammelten Daten des Bewegungsmelders. Nur leider fiel nach ungefähr 10 Jahren mein iMac G5 aus, dessen Hauptbeschäftigung inzwischen der Betrieb als Fernseher bzw. „PVR“, (Personal Video Recorder, Festplattenrekorder) mittels EyeTV war. Zwar konnte ich die Daten noch sichern, die meisten Filme waren auch bereits auf dem NAS, aber dennoch bedauerlich.

Nach ersten Recherchen wurde zudem klar, dass eine Reparatur kaum lohnenswert war, da ähnliche Geräte gebraucht günstiger gewesen wären als der Tausch von Mainboard, Logicboard oder ähnliche aufwändige Angelegenheiten.

Also spielte ich ein paar Alternativen durch:

  • iMac neu kaufen: Wirtschaftlich betrachtet definitiv nicht rentabel, vor allem, da ich nur einen Fernseher bzw. PVR benötigte. Insofern Overkill.
  • iMac gebraucht kaufen: Vergleichbare Modelle sind zwar günstig, haben aber auch eine gewisse Betriebszeit hinter sich, insofern besteht die Befürchtung, dass es in Kürze zu ähnlichen Fehlern kommen könnte.
  • Fernseher mit DVB-T-Receiver: Wie der Zufall es wollte, erhielt ich letzte Woche einen Newsletter, in dem recht günstige Modelle angeboten wurden. Dazu noch eine Festplatte per USB anschließen und fertig. Einerseits verlockend, andererseits auch eher unflexibel. Und fraglich, ob bei derart günstigen Modellen die timergesteuerte Aufnahme möglich ist, ob ein Netzwerkanschluss für das NAS existiert usw..
  • Zu guter Letzt der Raspberry Pi… Vor kurzem hatte ich einige Exemplare bestellt, zudem aus letztem Jahr noch DVB-T-Sticks im Keller liegen, eine USB-Festplatte befand sich auch noch dort, zudem eine USB-Fernbedienung, insofern waren zunächst die wichtigsten Zutaten vorhanden. Die Idee lag also sehr nahe, diese Möglichkeit einfach mal auszuprobieren.

Aufbau

Nachdem mir die Idee, den Raspberry Pi zu nutzen, nicht nur preislich attraktiv erschien, sondern auch den Spieltrieb oder nennen wir es Drang, etwas Neues auszuprobieren, reizte, mussten erstmal Hardware und Informationen gesammelt werden. Die Stückliste sieht wie folgt aus:

  • Raspberry Pi 2 Model B
  • MicroSD-Karte mit 16 GB
  • Netzteil mit 5V, 2A
  • zur Erstkonfiguration USB-Tastatur und -Maus
  • DVB-T-Stick mit Realtek RTL2832 Chipsatz
  • USB Infrarot Fernbedienung
  • Display mit HDMI-Anschluss

Beim Ausprobieren wurde klar, dass für den endgültigen Betrieb noch ein USB-Hub und evtl. eine USB-Soundkarte sinnvolle Anschaffungen sein sollten.

Ein Wort noch zu den Kosten – natürlich summieren sich die Einzelpreise der Komponenten in eine Region, die höher liegt als die von günstigen Flachbildfernsehern. Doch einerseits hatte ich einige der Bauteile vorrätig, somit die Ausgaben bereits getätigt, andererseits versprach das Media-Center viel mehr Funktionalität als die eines schlichten Fernsehers.

Zunächst bestand die Qual der Wahl des zugrunde liegenden Betriebssystems. Zwar wäre es möglich gewesen, das gesamte Media-Center auf einer Raspbian-Distribution aufzubauen, andererseits existieren mit OpenELEC und OSMC zwei spezielle Media-Center-Distributionen für den Raspberry Pi, die nur noch konfiguriert werden müssen. Daher habe ich mich für OpenELEC entschlossen, zum einen fanden sich dafür viele Artikel und Hinweise zur Konfiguration im Netz, zum anderen wurde OpenELEC auch im c’t-Artikel „Abspieldose“ (c’t 09/2015) bevorzugt. OpenELEC ist dabei eine Linux-Distribution, die die eigentliche Media-Center-Software namens Kodi (früher: XBMC Media Center) integriert. Der einfachste Weg zur Installation nennt sich NOOBS, ein fertiges Image zur Auswahl von Betriebssystemen, unter anderen ist OpenELEC mit dabei. Also NOOBS auf der SD-Karte installiert und auf den Raspberry Pi gebracht. Nach dem Booten begrüßt einen die Standard-Oberfläche von Kodi. Soweit hat der erste Schritt prima funktioniert.

Als nächstes war die Installatoin des DVB-T-Sticks an der Reihe. Die spannendste Frage lautete hier, ob der Stick erfolgreich erkannt werden sollte, und wie aufwändig die Einrichtung gewesen wäre. Um es vorweg zu nehmen – der Aufwand tendierte gegen Null, es war keinerlei Installation von zusätzlichen Treibern, Libraries oder ähnlichem notwendig. Der DVB-T-Stick wurde nach dem Einstecken sofort erkannt und initialisiert, wie ein Blick per dmesg verriet:


Damit war auch dieser Schritt erfolgreich abgeschlossen. Danach wurde meine Euphorie etwas gedämpft, da sich nun die Frage stellte, wie das TV-Signal auf das Display kommen würde. Nach einiger Recherche fanden sich Hinweise auf die Software namens tvheadend, die aus einer Server- und einer Client-Komponente besteht. Der Server sorgt dabei für den Empfang der Signale und stellt letztlich – nach einiger Konfiguration – den TV-Stream zur Verfügung. Der Client, eingebettet als Plugin in Kodi, nimmt das Signal entgegen und stellt es letztlich dar.

So weit, so gut, nur fanden sich zwar etliche Anleitungen, Blog-Einträge und sonstige Hinweise im Netz, jedoch musste die Software erstmal installiert werden. Und da ich OpenELEC nutzte, stand auch kein apt-get oder ähnliche Installationstools zur Verfügung. Also musste die Installation über die Oberfläche erfolgen – einerseits bequem, andererseits zeigten die gefundenen Artikel auch immer gewisse Richtungen, die bei der hier vorhandenen Version zunächst nicht zu finden waren. Denn die Server-Komponente von tvheadend befindet sich seit kurzem im „unofficial“-OpenELEC-Respository, was zunächst aktiviert werden musste.

IMG_20150413_200522

Nachdem dies erledigt war, fand sich unter „Addons“ – „Dienste“ das benötigte tvheadend. Nach der Installation tauchte es erfolgreich unter „Addons“ – „Dienste“ auf:

IMG_20150413_200603

 

Damit war ein weiterer Schritt erledigt – die Server-Komponente von tvheadend wurde gestartet und lief. Diese musste nun zunächst konfiguriert werden. Dafür bringt tvheadend wiederum eine eigene GUI mit, welche unter der jeweiligen IP-Adresse des Raspberry auf Port 9981 läuft. Ergo http://<ip-des-raspi>:9981 eingegeben und man wird von einer ExtJS-basierenden Anwendung begrüßt. Standardmäßig ist hier kein Passwort für den Nutzer „root“ angegeben, für eine Erstkonfiguration sollte dieser wenig restriktive Betrieb auch zunächst ausreichen.

Zur Konfiguration finden sich viele Hinweise, unter anderem im Kodi-Wiki. Jedoch stimmten die dortigen Screenshots nicht überein, so sollte ein Menüpunkt „TV Adapters“ im Reiter „Configuration“ existieren, jedoch war nur der Punkt „DVB Inputs“ zu finden. Immerhin fand sich ein Reiter „TV Adapters“ eine Ebene weiter darunter, d.h. unterhalb von „DVB Inputs“… Und – ebenfalls erfreulich – als ich „TV adapters“ angewählt habe, wurde nach dem Aufklappen der Baumstruktur bereits der DVB-T-Stick bzw. der gefundene Adapter mitsamt Nennung des Chipsatzes angezeigt:

tvheadend_backend_configuration_dvb_inputs

So weit, so gut.  Jedoch war – entgegen der Beschreibung im Wiki – kein Menüpunkt „Add DVB Network by location“ zu finden, so dass es nach Anleitung hätte weiter gehen können. Statt dessen war ein wenig Trial-and-Error angesagt. Zunächst habe ich unter „Networks“ ein solches angelegt, einfach nur „Test“ genannt und mich weiter entlang gehangelt.

tvheadend_backend_configuration_dvb_inputs_networks

Immerhin – wenn man dieses neu angelegte Network anwählte, ließ sich wiederum „Force scan“ aktivieren, nachdem wiederum im vorherigen Tab beim TV Adapter das Network „Test“ angewählt wurde. Es dauerte eine Weile, jedoch wurden daraufhin im „Muxes“-Tab auch einige Einträge angezeigt:

tvheadend_backend_configuration_dvb_inputs_muxes

Weiter ging es mit dem Tab „Services“. Dort fanden sich – ebenfalls nach einer Weile – sogar einige Sendernamen. Das allein reichte jedoch nicht, um das Frontend zur Anzeige der Sender überreden zu können. Zunächst mussten die gefundenen Services Channels zugeordnet werden. Leider war auch kein Button „Map DVB services to channels“, wie im Wiki ersichtlich, zu finden, so dass dieser Schritt auch eher ein Zufallstreffer war. Im „Services“-Tab findet sich ein Button „Map all“, immerhin verriet der Hilfstext bei Mouseover, dass damit die Aktion „Map services to channels“ ausgelöst wurde.

tvheadend_backend_configuration_dvb_inputs_services

Nachdem das Mapping erledigt war, wurden die Sender auch im Reiter „Channel / EPG“ unter „Channels“ angezeigt:

tvheadend_backend_configuration_channel_channels

Der nächste Schritt bestand in der Einrichtung des Frontends. Das tvheadend-Backend schien zu funktionieren, als nächstes musste der PVR-Client eingerichtet werden. In der Konfiguration unter „Addons“ war eine Liste der deaktivierten Addons zu finden. Dort konnte der „Tvheadend HTSP Client“ aktiviert werden. Anschließend ist dieser in der Liste unter „Addons“ – „Aktivierte Addons“ – „PVR-Clients“ zu finden und kann auch dort weiter konfiguriert werden.

IMG_20150413_200814

Die Standard-Einstellungen sollten für einen ersten Test jedoch ausreichen.

Nachdem die Channel-Liste im Frontend geladen war, konnte das Ergebnis unter „TV“ – „Kanäle“ betrachtet werden:

 

IMG_20150420_130028

 

Auch ein EPG (Electronic Program Guide) fehlt nicht, damit können etwa Aufnahmen geplant und recht komfortabel programmiert werden:

 

IMG_20150420_130125

 

Während zur Ersteinrichtung der Anschluss von Maus und Tastatur ratsam ist, möchte man einen Fernseher wohl eher klassisch per Fernbedienung steuern. Dafür hatte ich mir eine jener Billigst-USB-Fernbedienungen aus dem Vorrat von chinesischen Ebay-Händlern gekauft:

 

IMG_20150420_130212

 

Tatsächlich funktionierte diese Fernbedienung nach dem Einstecken in einen der USB-Ports auf Anhieb. Die wichtigsten Tasten funktionieren wie es die Aufschrift vermuten lässt, sogar die Maus-Simulation arbeitete wie gewünscht.

Für diejenigen, denen eine kleine Fernbedienung zu „old-school“ erscheinen mag, existiert natürlich auch eine App fürs Smartphone namens „Kore“, mit denen sich das Media-Center steuern lässt.

Was noch zu tun war bzw. ist

Decodierung in Hardware

Zu Beginn der Tests hatte ich noch keine Lizenz-Keys für die Hardwarebeschleunigung von MPEG-2-Videos gekauft. Das führte dazu, dass anfangs – da die Hardwarebeschleunigung in der Kodi-Konfiguration aktiviert war – beim Versuch, einen TV-Stream abzuspielen, gar kein Bild angezeigt wurde. Das Deaktivieren der Hardwarebeschleunigung hat diesem Umstand zwar Abhilfe geschaffen, aber die Decodierung in Software ist dennoch nicht empfehlenswert. Daher habe ich die ca. 5 EUR investiert und im Raspberry Pi Store die Lizenzen erstanden. Die Installation wird recht detailliert im OpenELEC Wiki beschrieben und funktioniert genau wie dort dargelegt. Nach der Einrichtung konnte Kodi wieder auf Hardwarebeschleunigung umkonfiguriert werden.

USB-Hub

Zwar besitzt der von mir eingesetzte Raspberry Pi 2 vier USB-Ports, doch lassen sich aufgrund des etwas ausladenden Designs des DVB-T-Sticks nicht alle davon nutzen. Daneben passt kein USB-Stecker mehr, direkt darunter ebenfalls nicht, insofern bleibt nur noch ein Steckplatz übrig, der mit der USB-Fernbedienung belegt ist. Falls man noch Maus, Tastatur oder gar eine USB-Festplatte nutzen möchte, ist die Nutzung eines USB-Hubs mit Netzteil unumgänglich. Dabei ist zu beachten, dass nicht jeder USB-Hub geeignet ist, manche bewegen sich außerhalb der Spezifikationen und speisen den Strom „von hinten“ ein. Da das weder gut noch sinnvoll ist, sollte die Auswahl mit Bedacht erfolgen, so existiert eine Liste kompatibler USB-Hubs mit detaillierter Beschreibung des Problems.

Sound

Die Tonausgabe aus dem analogen 3,5-mm-Anschluss ist – gelinde gesagt – gruselig und etwa zu vergleichen mit einer verkratzten Schallplatte, die mit einer stumpfen Nadel auf einem 30 Jahre alten Plattenspieler und nahezu defektem Verstärker abgespielt wird. Tatsächlich ist überall von der mangelnden Qualität des Soundausgangs zu lesen, aber dass sie so schlecht ist, hätte ich nicht für möglich gehalten. Der digitale Ausgang per HDMI hingegen hat diese Probleme nicht, setzt jedoch Lautsprecher im verwendeten Display bzw. den Anschluss eines Fernsehers voraus. Alternativ lässt sich für wenige Euro eine USB-Soundkarte erstehen – zum Beispiel erneut beim Ebay-Händler des Vertrauens, deren Soundausgabe schon wesentlich besser sein soll. Derartige Einchip-Lösungen mit dem so genannten C-Media-Chip sind zusammen mit Aktivboxen die noch fehlende Komponenten.

Fazit

Insgesamt läuft der Raspberry Pi als Media-Center mit OpenELEC/Kodi bereits recht zufriedenstellend. Nicht nur, dass sich TV-Inhalte betrachten lassen, dank Plugins und Erweiterungen ist eine Vielzahl weiterer Quellen problemlos zu erschließen. Beispielsweise habe ich mir die Mediathek-Plugins für die ARD und das ZDF installiert, ebenso wie Video-Plugins für YouTube, Vimeo, Clipfish & Co. Des Weiteren lassen sich glücklicherweise auch die gesammelten Werke aus der EyeTV-Bibliothek abspielen, Bilder aus dem NAS betrachten, Internet-Radio hören usw.. Die Möglichkeiten sind extrem vielfältig und bieten Platz für weitere Experimente.

Die Erstkonfiguration ist jedoch etwas aufwändig und vor allem durch Trial-and-Error geprägt. Noch dazu müssen zunächst zwei User-Interfaces bedient werden, zumindest bei den von  mir eingesetzten Komponenten mit Tvheadend-Server und -Client. Dies bietet insofern Platz für weitere Integration und damit im besten Fall einfachere Bedienbarkeit.

Dennoch – insgesamt läuft das kleine Kästchen inzwischen prima, und kleinere Hürden können dank Myriaden von Artikeln und Anleitungen sicherlich auch in Zukunft umschifft und gelöst werden. Und es würde mich nicht wundern, wenn ein TV-Hersteller vielleicht auf die Idee käme, anstatt eigener „Smart-TV“-Hard- und Software einfach einen Raspberry Pi mitsamt Kodi zu integrieren…

 

 

Ähnliche Beiträge

Tags:
Kategorie:

Ein Gedanke zu „Media-Center mit Raspberry Pi und OpenELEC“

  1. Hallo,
    kann KODI die archivierten EyeTV-Daten einfach so abspielen?
    Ich habe noch alle genialen Schmidteinander-Folgen auf einer alten Mac-Platte und möchte diese in mein Raspi 3-Archiv integrieren…
    Grüße … Gerd

Schreibe einen Kommentar

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