Raspberry Pi3 mit Libreelec und Emby als kleiner Medienserver für unterwegs

  • Hallo,

    wer ein bisschen Langeweile hat, kann hier gerne lesen, was für ein kleines unbedeutendes Projekt ich gerade bastel :)

    Ausgangslage: Wir sind als Familie oft auf langen Strecken unterwegs mit unserem Bulli, auch zum Camping etc. Für diese Fahrten brauchen die Kinder Entertainment, damit sie mir nicht den letzten Nerv rauben. Die Kinder sind beide noch zu jung, als dass sie selbst mit einem Smartphone, Tablet o.ä. für ihr Unterhaltungsprogramm sorgen können bzw. sollen. Ich brauche also am besten ein System, dass ich vor Fahrantritt anschmeißen kann und dann vom Fahrersitz auch steuern kann, ohne dafür jedes Mal aussteigen und hinten in den Bus klettern zu müssen. Ich habe mir gedacht, statt nun eines teuren und schlechten Car Media Systems zu kaufen, einfach Sachen zu verwenden, die ich sowieso schon rumfliegen habe.

    Meine bisherige Lösung: Auf meinem Android Smartphone habe ich auf der SD-Karte die entsprechenden Serien und Filme und den Emby-Server installiert. Auf dem Smartphone mache ich dann einen mobilen Hotspot auf, bringe die zwei Tablets (ein altes Huawei Media Tab und ein Fire Tablet) für die Kids (und zur Not auch das Smartphone meiner Frau) ins selbe WLAN und gehe per Browser auf den Emby-Server. Die Kinder könnten dann ihre Filme selbst anklicken (wenn sie angeschnallt denn dran kommen würden), ich kann aber auch über die Cast-Funktion auf meinem Smartphone die entsprechenden Videos auf dem jeweiligen Tablet aussuchen, starten, stoppen etc.

    Was stört? Das Ganze funktioniert einigermaßen gut, ist aber bisweilen umständlich und fehleranfällig. Der mobile Hotspot neigt dazu, sich auch mal von selbst zu beenden (zB wenn jemand anruft). Das die IP bzw. das Subnetz des WLAN ändern sich dauernd, so dass man bei der jeder Fahrt auf den Clients eine andere IP (<IP.des.Servers>:8096) eingeben muss. Ich möchte das gerne so vereinfacht haben, dass die Einrichtung selbsterklärend ist, dass auch meine wenig technikaffine Frau das Ganze einrichten kann.

    Daher möchte ich gerne sowas wie einen kleinen zentralen Medienserver im Auto (und auch beim Camping) haben.

    Neue Umsetzung: Ich hatte noch einen RPi3 ohne aktuelle Verwendung zuhause rumliegen. Darauf habe ich Libreelec drauf. Docker-Addon installiert und den Emby-Server als Docker Container laufen lassen*. In den Libreelec-Settings den mobilen Hotspot eingerichtet. Alle Clients (mein Smartphone, frau ihm ihr Smartphone, Tablet für die Kids) können dann ins Libreelec-WLAN. Dessen IP-Einstellungen bleiben immer gleich, auf den Clients kann ich also per Browser-Lesezeichen oder in der Emby-App die Adresse des Emby-Servers fest hinterlegen, so dass man die Emby-Oberfläche per Klick erreichen kann. Alle Videos kommen jetzt auf oder in den PI (das kann man ja je nach Gusto machen, entweder einen mobilen Datenträger anschließen oder gleich den PI auf einer SSD laufen lassen). Wenn sich alle anderen Client bei Emby angemeldet haben, kann ich mit meinem Smartphone (natürlich ebenfalls am Emby-Server angemeldet) bestimmen, wer welche Videos schaut. Das Ganze funktioniert also im Prinzip genau wie vorher, aber viel komfortabler [bu]

    Weiterer Zusatzbonus ist, dass ich denselben Pi nutzen kann, um beim Camping am Urlaubsort Bulli- bzw. Zelt-Kino mit unserem Mini-Beamer zu veranstalten. Flugs den PI über HDMI mit dem Beamer verbunden und ich habe ein komplett eingerichtetes Kodi. :)

    Der große Praxistest beim nächsten Urlaub fehlt noch, aber "trocken" habe ich schon ausprobiert, dass a) der RPi3 über den 12V-Anschluss im Auto ohne Probleme läuft und b) tatsächlich drei Videos ohne Ruckeln gleichzeitig vom Emby-Server auf die Clients gestreamt werden können.

    Klippen, die es zu überwinden galt:

    - Wie bekomme ich den Video Content zuhause auf den RPi3 drauf: Den Pi zuhause an LAN anschließen und über SMB Dateien drauf kopieren und von Emby online Scrapen lassen.

    - Wie bekomme ich (neuen) Video Content unterwegs auf den RPi3 drauf: Videos auf meinem Smartphone vom dortigen Emby-Server online scrapen lassen, dabei als Metadatenformat NFO verwenden. Dann Smartphone und Pi ins selbe Netzwerk bringen, per SSH oder SMB auf den PI spielen und vom dortigen Emby-Server dann offline scrapen lassen

    - Wie in Kodi die Bibliothek aktuell halten, wenn unterwegs neuer Content dazu kommt: Den Scraper in Kodi auf offline Scraper stellen, Kodi liest für seine DB dann die NFOs aus. Den Bibliotheks-Scan auf "automatisch bei Neustart" stellen oder über SSH über die Kommandozeile anstoßen (ggf. Bibliothek bereinigen auch über die Kommandozeile anstoßen).

    Eventuelle weitere ToDos:

    - Hosts-Datei auf Libreelec so bearbeiten, so dass man innerhalb des WLANs statt über die IP-Adresse über einen griffigen Domainnamen auf den Emby-Server kommt --> geht das?

    - Vielleicht ein neues Case mit so einem Mini-TFT zulegen, so dass auch unterwegs die Libreelec-Oberfläche benutzt werden kann.

    Ich weiß, man hätte dasselbe wahrscheinlich auf zig anderen und besseren Wegen realisieren können. Aber mir hat es so Spaß, zu basteln. Und es hat so gut wie nichts gekostet, weil ich alle Sachen dafür schon rumfliegen hatte :)

    Respekt an jeden, der bis zum Schluss gelesen hat! ;) Wenn jemand von den Tapferen Fragen oder Anmerkungen oder Verbesserungsvorschläge hat, immer her damit :)

  • Ich mag solche Bastelprojekte [ab]

    Das übertragen von neuem Content würde ich standortunabhängig mit Syncthing bewerkstelligen.

    Einen Knoten installierst du bei dir zuhause und fügst das Verzeichnis das die gewünschten Videos enthält als zu synchronisierenden Ordner hinzu. Den anderen Knoten installierst du auf dem RPi3.

    Sobald der RPi irgendwie ins Internet gebracht wird gleicht er sich mit dem Datenstand deines Knotens zuhause ab.

    Die Videos lässt du am besten von deinem Emby-Server zuhause scrapen und synchronisierst die gescrapten Zusatzdaten gleich mit.

    Im Emby am RPi stellst du dann das Scraping auf "local only".

    In Kodi bindest du Emby über das Addon im "Native Mode" ein. Die Inhalte lässt du dann überhaupt nicht durch Kodi scrapen, sondern nutzt die Informationen die Emby bereits zur Verfügung stellt.

    Das wäre jetzt zumindest der Ansatz den ich gewählt hätte.


    Bei solchen Projekten die auf ein Hotspot-Netzwerk setzen wirst du vermutlich noch auf das Problem "Connectivity Check" stoßen.

    Die modernen Smartphones sind ja alle dafür ausgelegt immer und überall im Internet zu sein. Das stellen die Hersteller sicher indem sie bei Verbindung zu einem WLAN fest hinterlegte URLs auf ihre Erreichbarkeit abprüfen. Ist die URL nicht erreichbar (weil der Hotspot mit dem Verbunden werden soll z.B. selbst keine Internetverbindung hat), wird stattdessen die Mobilfunkverbindung genutzt. Auf die Dienste die über den Hotspot erreichbar wäre kann in dem Fall dann trotz Verbindung zum zugehörigen WLAN mitunter nicht zugegriffen werden.

    Das kann man umgehen in dem man den Connectivity-Check auf den Clients deaktivert, auf eine erreichbare Adresse anpasst, oder den Hotspot so anpasst, dass die angefragten URLs von einem lokalen Webserver beantwortet werden und so deren Erreichbarbeit vorgegaukelt wird. So wie hier z.b. beschrieben.

  • Habe ich geahnt, dass hier noch weitere coole Ideen kommen. :)

    Syncthing werde ich mir mal ansehen. Mit direkt installieren auf einem ReadOnly-System ist ja schwierig, müsste es also einen Docker oder ein Kodi-Addon für geben (habe ich jetzt noch nicht geschaut).

    In Kodi bindest du Emby über das Addon im "Native Mode" ein. Die Inhalte lässt du dann überhaupt nicht durch Kodi scrapen, sondern nutzt die Informationen die Emby bereits zur Verfügung stellt.

    Das wäre jetzt zumindest der Ansatz den ich gewählt hätte.

    Wollte ich auch erst so machen. Noch einfacher war es aber dann aber, Kodi einfach nur lokal scrapen zu lassen, so dass die von Emby angelegten NFOs genutzt werden. Kodi selbst nutze ich ja nur in Verbindung mit dem Beamer, d.h. nahezu immer werde ich den den Pi vor der Kodi-Nutzung neu booten und damit wird die Kodi-DB mit passender Einstellung immer automatisch aktuell gehalten. Wenn ich allerdings irgendwann mal die Vorzüge von mehreren DBs derselben Art (verschiedene Filme-DBs zB) nutzen möchte, oder ich merke, dass ich die DB doch öfter bereinigen lassen muss, dann mache ich das, wie du es hier mit Emby skizziert hast. :)

    Die modernen Smartphones sind ja alle dafür ausgelegt immer und überall im Internet zu sein. Das stellen die Hersteller sicher indem sie bei Verbindung zu einem WLAN fest hinterlegte URLs auf ihre Erreichbarkeit abprüfen. Ist die URL nicht erreichbar (weil der Hotspot mit dem Verbunden werden soll z.B. selbst keine Internetverbindung hat), wird stattdessen die Mobilfunkverbindung genutzt. Auf die Dienste die über den Hotspot erreichbar wäre kann in dem Fall dann trotz Verbindung zum zugehörigen WLAN mitunter nicht zugegriffen werden.

    Mit dem Connectivity Check hatte ich in die Richtung bislang noch keine Probleme. Merkwürdigerweise ist es umgekehrt eher so, dass mein Smartphones es in diesem Fall nicht geschissen bekommt, bei einem Offline-Hotspot nebenbei mobile Daten benutzt. Sobald ich den Pi-Hotspot anwähle bin ich auf dem Smartphone also offline. Bei anderen Hotspots, die keinen Internetzugriff haben, fragt mich mein Handy immer, ob ich für den Internetzugriff mobile Daten nutzen möchte. Bei dem Pi-Hotspot will mein Smartphone partout nur anbieten, ein anderes WiFi zu wählen. Es hat noch nicht mal was genützt, in den Entwickleroptionen "Immer auch mobile Daten nutzen" zu wählen.

  • müsste es also einen Docker oder ein Kodi-Addon für geben

    Es gibt auf jeden Fall einen Docker. LibreELEC-Addon gibt es glaube ich auch.

    Gerade für solche Dinge ist die Software echt spitze.

    Wollte ich auch erst so machen. Noch einfacher war es aber dann aber, Kodi einfach nur lokal scrapen zu lassen, so dass die von Emby angelegten NFOs genutzt werden. Kodi selbst nutze ich ja nur in Verbindung mit dem Beamer, d.h. nahezu immer werde ich den den Pi vor der Kodi-Nutzung neu booten und damit wird die Kodi-DB mit passender Einstellung immer automatisch aktuell gehalten. Wenn ich allerdings irgendwann mal die Vorzüge von mehreren DBs derselben Art (verschiedene Filme-DBs zB) nutzen möchte, oder ich merke, dass ich die DB doch öfter bereinigen lassen muss, dann mache ich das, wie du es hier mit Emby skizziert hast.

    Hab da jetzt keine verifizierten Werte dazu, aber von der Systemauslastung kam es mir so vor, als wäre die "native Mode" Variante des Emby-Addons performanter als wenn der RPi beim Starten erst noch die Inhalte selbst scrapen muss. Auch mit von lokal gescrapten Inhalten war der Client meinem Empfinden nach nach dem Start langsamer, als wenn er die Daten über das Addon bezieht.

    Mit dem Connectivity Check hatte ich in die Richtung bislang noch keine Probleme. Merkwürdigerweise ist es umgekehrt eher so, dass mein Smartphones es in diesem Fall nicht geschissen bekommt, bei einem Offline-Hotspot nebenbei mobile Daten benutzt. Sobald ich den Pi-Hotspot anwähle bin ich auf dem Smartphone also offline

    beides gleichzeitig (aktive WLAN und mobile Datenverbindung) ist bei Android glaube ich garnicht möglich, da das System nur ein Gateway nutzen kann, nicht aber 2 gleichzeitig. Das mit den mobilen Daten aktiv lassen in den Entwickleroptionen ist soweit ich weiß nur dazu die Internetunterbrechung so gering wie möglich zu halten wenn das WLAN nicht mehr in Reichweite ist.

    Wie das Gerät sich dann bzgl. des Connectivity-Check verhält: da koch jeder Hersteller irgendwie sein eigenes Süppchen..

  • Hab da jetzt keine verifizierten Werte dazu, aber von der Systemauslastung kam es mir so vor, als wäre die "native Mode" Variante des Emby-Addons performanter als wenn der RPi beim Starten erst noch die Inhalte selbst scrapen muss.

    Ich gebe dir Recht, mit dem Emby Addon im Native Mode wäre es insgesamt die bessere Lösung. Aber ich habe ja nur eine kleine Reisevideothek und keine große Videosammlung. Die scrapt Kodi in ein paar Bruchteilen von Sekunden. Wenn es mit Emby noch schneller geht, würde ich das gar nicht merken ;)

    Aus Bequemlichkeit habe ich es erstmal so gelassen.

    Einen Syncthing Docker gibt es übrigens. Sollte also problemlos gehen.

    Das nervigste "Problem" ist damit aber noch nicht gelöst: Um den Pi unterwegs online zu bekommen, brauche ich entweder einen LAN Anschluss oder muss irgendeine Art Display anschließen, um über die GUI das WLAN zu wechseln.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!