VDR Mashup

  • Eine Frage über die ich schon seit längerem nachdenke, möchte ich hier mal zu Diskussion stellen.
    Nicht, das dies im Moment aktiv vor hätte, nur möchte ich mal die Möglichkeiten diskutieren.


    Ausgangssituation:


    In einem Haus oder Wohnunung sind die einzelnen Zimmer in der Regel jeweils mit einem Satkabel angebunden.
    Es sei denn man baut gerade selber oder hat irgendwie Einfluss auf die Planung und Durchführung.
    Da eine Karte für einen VDR eher unbefriedigent ist, wird aktuell folgender Weg beschritten.
    Verlagerung der Sat Kabel in den Keller. Dort wird ein Zentraler VDR-Server eingerichtet der seine
    Karten den über Netzwerk angeschlossenen reinen Streaming Clients zur Verfügung stellt.
    Dies führt z.B. zum Problem, dass der Server von nun an ein single point of failure ist.


    Idee:


    Jeder VDR wird mit einer eigenen Sat Karte ausgestattet.
    Er ist nun sein eigener single point of failure.
    Die Satkabel müssen nicht neu verlegt werden.
    Dieser VDR agiert von nun an selber als steamdev-server sowie client und
    holt sich im Falle einer fehlenden Karte den Stream von einem anderen VDR.


    Fragen:


    - Welche Probleme stellen sich hier, die ich im Moment nicht sehe ?
    - Gibt streamdev das im Moment her ?
    - Die anderen VDRs müssten entweder ebenfalls gerade angeschaltet sein oder werden per Netz geweckt.
    Wie ist das zu realisieren, z.B. in Bezug auf die Auswahl des zu Nutzenden VDR-Servers.

    Powered by Point of View ION330 und Mystique SaTiX-S2 Dual
    Geguckt wird auf einem 52PFL5605H/12 per HDMI mit Atmolight Quattro
    Audio optisch per Yamaha RX-V459 auf einem Teufel Concept P
    Non-TV content über XBMC und boblight
    Remote Harmony 525 durch Atric-IR
    Remote und Streaming mit Motorola XOOM und AndroVDR sowie Daroon Player
    Streaming auf ZBOX ID-81 und Desktop per streamdev
    All based on selfbuild OpenenELEC master


    Nebenbei noch ein par andere VDRs

  • Was streamdev betrifft muss bislang noch der VDR gepatcht werden. Andernfalls bekommst Du eine Endlos-Schleife (VDR1 fragt VDR2 ob er den Sender zur Verfügung stellen kann, VDR2 fragt wiederum VDR1 ob er den Sender hat - usw.). Den streamdev-Sourcen liegt der Patch vdr-1.4.3-recursion.diff bei, lässt sich aber nicht mehr auf aktuelle VDRs anwenden. Der Patch sehr einfach ist und sollte sich daher leicht auf aktuelle Versionen anzupassen lassen. Eine Änderung des streamdev-Umschaltprozederes steht aktuell an. Ich versuche in diesem Zuge das Problem ohne Patch innerhalb von streamdev zu lösen.


    Jeder Client VDR ist aus dessen Sicht mit mehreren Servern verbunden. Dazu muss der Client je Server eine Kopie des streamdev-client-Plugins am laufen haben (siehe auch VDR-Wiki zu streamdev). Insgesamt verlangsamt dies das Umschaltprozedere, da bei jedem Umschaltvorgang jeder Server über das Netzwerk befragt wird. Mit ausgeschalteten VDRs gibt das aktuell Stress, da streamdev-client in jedem Fall einen Verbindungsversuch startet bis dieser auf einen Timeout läuft. Da könnte ich Dir aber was einbauen.


    Das Wecken anderer VDRs müsste man wohl in streamdev verankern, da ein bereits laufender VDR einem nicht laufenden vorzuziehen ist. Nur im Notfall müsste ein schlafender geweckt werden.


    Unschön wird es dann in meinen Augen beim Thema Aufnahmen. Da es keine Instanz gibt, die alle Timer aller VDRs kennt, lässt sich auch nicht planen, welcher VDR am besten welche Aufnahme übernimmt bzw. von welchem anderen VDR streamt. Den Ansatz hat wohl mal das VIDEGOR Projekt verfolgt, das Projekt ist meines Wissens aber schon länger tot. Mit streamdev dürfte das mitunter ziemlich ineffizient werden.


    Ich persönlich würde den zentralen Server in jedem Fall bevorzugen. Und wenn es ohnehin noch an der Netzwerkverkabelung fehlen sollte, dann lieber SAT-Kabel raus und Netzwerkkabel rein. Ansonsten käme es wohl auf einen Versuch an. Die eine oder andere Kleinigkeit kann ich dazu gerne in Streamdev einbauen, sollten größere Änderungen anfallen wird es aber schwierig. Meine Zeit ist sehr knapp bemessen und in streamdev gibt es dringendere Baustellen. Wäre also nicht verkehrt, wenn Du oder ein anderer Interessent über Programmierkenntnisse verfügt.

  • Zitat

    Original von schmirl
    Insgesamt verlangsamt dies das Umschaltprozedere, da bei jedem Umschaltvorgang jeder Server über das Netzwerk befragt wird.


    Hier würde ich schon ansetzen.
    Es muss ja nur gefragt werden wenn die primäre Karte nicht verfügbar ist.
    Im "normalfall" sollte diese genutzt werden.
    Quasi sollte der VDR dafür sorgen, dass wenn er eine Aufnahme macht und es kein Timer gesteuerter VDR start war, schon ein zweiter VDR zur Verfügung steht.


    Zitat

    Mit ausgeschalteten VDRs gibt das aktuell Stress, da streamdev-client in jedem Fall einen Verbindungsversuch startet bis dieser auf einen Timeout läuft. Da könnte ich Dir aber was einbauen.


    Mhhh. Mit meinem obigen Kommentar kennt der Client-VDR ja schon den Server-VDR den er aufgeweckt hat. Somit sollte sich das ja vermeiden lassen.

    Zitat

    Das Wecken anderer VDRs müsste man wohl in streamdev verankern, da ein bereits laufender VDR einem nicht laufenden vorzuziehen ist. Nur im Notfall müsste ein schlafender geweckt werden.


    Sehe ich auch so. U.U. müsste er beim hochfahren alle mal broadcasten, um zu gucken wer da ist. Generell sollte ein VDR immer Wissen, welchen anderen er gerade erreichen kann.
    Das kollidiert aber mit dem mehrfach Aufruf des streamdev-clients, denke ich.

    Zitat


    Unschön wird es dann in meinen Augen beim Thema Aufnahmen. Da es keine Instanz gibt, die alle Timer aller VDRs kennt, lässt sich auch nicht planen, welcher VDR am besten welche Aufnahme übernimmt bzw. von welchem anderen VDR streamt.


    Die Frage die ich mir hier stelle, ist ob es in so einer Kombination überhaupt gewünscht ist, das alle die gleichen Timer und Aufnahmen haben.


    Zitat

    Den Ansatz hat wohl mal das VIDEGOR Projekt verfolgt, das Projekt ist meines Wissens aber schon länger tot. Mit streamdev dürfte das mitunter ziemlich ineffizient werden.


    Sehe ich ähnlich.


    Zitat

    Ich persönlich würde den zentralen Server in jedem Fall bevorzugen. Und wenn es ohnehin noch an der Netzwerkverkabelung fehlen sollte, dann lieber SAT-Kabel raus und Netzwerkkabel rein. Ansonsten käme es wohl auf einen Versuch an. Die eine oder andere Kleinigkeit kann ich dazu gerne in Streamdev einbauen, sollten größere Änderungen anfallen wird es aber schwierig. Meine Zeit ist sehr knapp bemessen und in streamdev gibt es dringendere Baustellen. Wäre also nicht verkehrt, wenn Du oder ein anderer Interessent über Programmierkenntnisse verfügt.


    Keine Angst. Ich wollte, wie ich schon sagte, nur mal die Oprion hier diskutieren.
    Also keine langen Programmiernächte für Dich, .... noch nicht ;)

    Powered by Point of View ION330 und Mystique SaTiX-S2 Dual
    Geguckt wird auf einem 52PFL5605H/12 per HDMI mit Atmolight Quattro
    Audio optisch per Yamaha RX-V459 auf einem Teufel Concept P
    Non-TV content über XBMC und boblight
    Remote Harmony 525 durch Atric-IR
    Remote und Streaming mit Motorola XOOM und AndroVDR sowie Daroon Player
    Streaming auf ZBOX ID-81 und Desktop per streamdev
    All based on selfbuild OpenenELEC master


    Nebenbei noch ein par andere VDRs

  • Zitat

    Originally posted by pinky666


    Hier würde ich schon ansetzen.
    Es muss ja nur gefragt werden wenn die primäre Karte nicht verfügbar ist.
    Im "normalfall" sollte diese genutzt werden.
    Quasi sollte der VDR dafür sorgen, dass wenn er eine Aufnahme macht und es kein Timer gesteuerter VDR start war, schon ein zweiter VDR zur Verfügung steht.


    So funktioniert VDR aber nicht. VDR fragt immer alle Devices ab (also jede DVB-Karte und jede streamdev-client Instanz) ob diese den Kanal zur Verfügung stellen kann. Wer dies verneint, ist aus dem Rennen. Aus den verbliebenen Devices sucht sich VDR dann das "günstigste" aus. Dieses Device muss dann aber auch liefern können, sonst bleibt das Bild schwarz (oder - im Falle eines anstehenden Timers - gibt es einen Emergency Exit).


    Mit anderen Worten: Eine streamdev-client Instanz die Verbunden ist muss antworten "ich bin verfügbar aber teurer als das lokale DVB-Device". Eine streamdev-client Instanz deren Server nicht verfügbar ist muss melden "ich bin verfügbar aber sehr teuer". Bekommt diese Instanz den Zuschlag, muss der andere VDR geweckt werden.


    Zitat


    Die Frage die ich mir hier stelle, ist ob es in so einer Kombination überhaupt gewünscht ist, das alle die gleichen Timer und Aufnahmen haben.


    Da habe ich mich wohl ungenau ausgedrückt. Natürlich soll nicht jeder die gleichen Timer und Aufnahmen haben. Ich meinte so Dinge wie: DVB-Karte von VDR1 ist beschäftigt, anstehende Aufnahme wird darum von VDR2 gestreamt. Jetzt will VDR2 auch etwas aufnehmen, muss nun aber von VDR3 streamen weil die lokale DVB-Karte ja an VDR1 verliehen wurde. Sinnvoller wäre es gewesen, wenn sich VDR1 an VDR3 gewandt hätte. Jetzt lass in dieses einfache Beispiel noch weitere Randbedingungen einfließen (mehrere gleichzeitige Timer von gleichen/verschiedenen Transpondern, dazu Live-TV und vielleicht noch verschlüsselte Kanäle mit unterschiedlichen Abos) und Du erreichst eine Komplexität die kaum mehr zu Überblicken sein dürfte.


    Wenn ich mich richtig erinnere, hat VIDEGOR als externe Instanz versucht, Timer optimal an alle ihr unterstellten VDRs zu verteilen (die dann natürlich selbständig aufgewacht sind). Live-TV und Streaming zwischen VDRs war aussen vor.

  • Das dieses Scenario nun bei mir Realität ist hab ich hierzu eine Idee:


    Eine art VDR-Streamdev-Proxy:


    Auf einem Zentralen Server läuft kein VDR sondern ein Dienst, der sich wie ein VDR-Streamdev Server verhält.
    Gleichzeit ist er auch Streamdev-Client und kann die Streams von den jeweils zur Verfügung stehenden VDRs durchreichen.
    Dessen Aufgabe ist es nun die entsprechenden VDRs zu Wecken und die zur Verfügung stehenden Karten an die Clients zu verteilen.


    Edit:
    Es geht mir hierbei nur im Streams. Ich will keine Aufnahmen und Timer zentral managen. Die einzelnen VDRs sind immer noch "stand alone".

    Powered by Point of View ION330 und Mystique SaTiX-S2 Dual
    Geguckt wird auf einem 52PFL5605H/12 per HDMI mit Atmolight Quattro
    Audio optisch per Yamaha RX-V459 auf einem Teufel Concept P
    Non-TV content über XBMC und boblight
    Remote Harmony 525 durch Atric-IR
    Remote und Streaming mit Motorola XOOM und AndroVDR sowie Daroon Player
    Streaming auf ZBOX ID-81 und Desktop per streamdev
    All based on selfbuild OpenenELEC master


    Nebenbei noch ein par andere VDRs

    Einmal editiert, zuletzt von pinky666 ()

Jetzt mitmachen!

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