reached EOF, but we are in stream mode. delaying 1 second.

  • Hallo!


    ich habe zuhause eine DM820, die als Server-Box dient und bei meiner Freundin eine DM520 als Client stehen. Ich streame viele Sender von zuhause zu ihr per rtsp in 720p, weil sie leider nur DVB-T empfangen kann. Das funktioniert soweit super.


    Sogar Aufnahmen und Timeshift kann die DM520 von den gestreamten Sendern machen. Kurioserweise ist die Wiedergabe von Timeshift allerdings fast unmöglich. Alle paar Minuten wird die Wiedergabe pausiert. Ein kurzer Druck auf die "play"-Taste und es geht weiter.


    Das sieht dann im Log ungefähr so aus:


    Ein längeres Log ist im Anhang.

  • Ja, da habe ich noch keine Beeinträchtigung festgestellt. Ich habe auch testweise ohne Probleme per "Rec"-Button eine Aufnahme gestartet, 5 Minuten gewartet, diese Aufnahme abgespielt während noch weiter aufgenommen wird und über 30 Minuten ohne Unterbrechung schauen können. Ist ja quasi ähnlich zu Timeshift.
    Nur wenn ich per Start/Stop-Taste das echte Timeshift aktiviere, kurz warte und dann abspiele, hängt die Wiedergabe nach einiger Zeit. Mal kann man 5 Minuten gucken, mal hängt sie direkt nach 1 Minute.


    Nehme ich Videos manuell auf und schaue mir sie an während die Aufnahme noch läuft, sieht das Log so aus:



    usw.



    Bei Timeshift sieht es so aus:



    Kurios finde ich auch, dass die Fehlermeldung immer ein 1 Sekunden Delay angibt, aber der Status noch in der selben Sekunde auf "Pause" geändert wird.

  • Ich habe übrigens das gleiche Problem, wenn ich nicht-transkodiert (also von Port 8001) streame. Aufnahmen können unterbrechungsfrei abgespielt werden, bei Timeshift muss ich immer wieder auf Play drücken, weil das Abspielen unterbrochen wird (egal wieviel Zeit ich im "Rückstand" bezigen auf das Live-Programm bin).
    Jemand eine Idee?

  • Hmm verstehe ich das richtig... der Sender kommt übers Netz.. also ihr streamed einen sender über Netz.. nicht vom lokalen Tuner.


    Dann startet ihr Timeshift auf diesem gestreamten sender...


    Und hmm wo landet das Timeshift?


    Das geht vermutlich dann auch übers Netz auf irgendein NAS oder so?


    Also kein lokaler Datenträger?


    Weil eigentlich wenn dort EOF kommt.. dann heisst das, dass beim lesen der Daten aus der timeshift datei etwas schief gegangen ist.. also keine Daten gelesen werden konnten.


    Das finde ich gerade etwas merkwürdig... da wäre es interessant, ob es einen Unterschied macht ob man lokal auf einen usb stick timeshiftet oder übers Netz...


    Und dann wäre noch die Frage was für ein Netzwerk Dateisystem ist es.. CIFS/NFS?


    cya

  • Richtig ist, dass über's Netz gestreamed wird.


    Falsch ist, dass auf NAS gespeichert wird. In der Client-Box steckt ein USB-Stick, auf dem landen sowohl die Aufnahmen, als auch Timeshift.


    Ich kann ganze Filme problemlos aufnehmen. Auch kann ich eine normale Aufnahme starten, kurz warten und diese dann abspielen und somit versetzt fernsehen.


    Mache ich das allerdings nicht per Aufnahme, sondern mit der Timeshift-Funktion, dann wird die Wiedergabe dauernd pausiert. Ich kann sofort auf Play drücken und es geht weiter, aber das dauernd machen zu müssen nervt natürlich. Timeshift wird auch nicht angehalten - was ja bei einem Schreibfehler normalerweise passieren müsste, sondern die TS-Aufnahme läuft normal weiter. Lediglich bei der Wiedergabe muss ich diese dauernd wieder starten, weil pausiert wird.

  • selbes bei mir. Ich schaue über SAT>IP und hab PTS laufen auf eine SSD in der 900, damit funktioniert es. 'Schau ich aber einen Gestreamten Sender von meiner DM920 und ich timeshifte, bleibt es immer wieder willkürlich stehen. Etwas Nerfig das ganze, war aber unter OE2.0 auf meiner DM8000 auch schon so!

  • Also bei Sat>ip geht es ja, damit kann es also nichts zu tun haben.
    Wenn ich aber Sender von der dm920 in der Liste habe, welcher direkt an der Schüssel hängt, geht es nicht. War wie gesagt Bei der dm8000 genau so!

  • Ach so, dachte du hast ausschliesslich Sat>IP
    Und ohne pts ist das Problem auch?
    Bei Sat>IP gehst du aber direkt auf den Sat>IP Server? Da brauchst du ja keine Dreambox als Server. Oder transponder die Dreambox dann für über's Internet?

    >> Wir Schweizer haben die Uhren, aber keine Zeit ! <<

  • Genau! Bei SAT>IP keine Probleme mit Timeshift, schalte ich auf meine Streaming Kanäle von der DM920 Stopt es wieder willkürlich bei Timeshift. Deswegen habe ich mir überhaupt erst den SAT>IP Server angeschaft!

  • Habe gerade nochmal geschaut.
    Wenn man per Timeshift die aktuelle Sendung anhält, aber noch nicht startet, kommt auch folgendes immer mal wieder im Log:


    reached EOF, but we are in stream mode. delaying 1 second.
    eDVBChannel: End of file!


    Der Fehler scheint also nicht durch die Wiedergabe zu kommen, sondern bei der Aufzeichnung zu entstehen.


    Trotzdem wird korrekt aufgezeichnet. Ich kann nämlich das temp Timeshift-File kopieren und später - nachdem Timeshift beendet wurde - problemlos anschauen.


    Starte ich allerdings per Play-Button die Timeshift-Aufnahme, während sie noch aufgezeichnet wird, dann wird sie immer wieder pausiert. Und das nicht etwa immer an der gleichen Stelle, sondern immer genau dann, wenn der Fehler oben ins Log geschrieben wird.


    Das sieht für mich so aus, als wenn die Wiedergabe aufgrund eines Fehlers, der eigentlich bei der Aufnahme entsteht (aber diese nicht behindert), pausiert wird, obwohl das gar nicht nötig wäre.

  • @Ghost: Fehler reproduzierbar, gefunden und Workaround gebastelt


    Der Fehler tritt immer auf, wenn die Datenübertragung des Streams mal kurz aussetzt, weil bspw. die Internet-Verbindung gerade einen Schluckauf hat. Dann kommt ein iPlayableService.evEOF Event und __evEOF() in InfoBarGenerics.py wird aufgerufen. Daher wird die Wiedergabe pausiert (auch wenn das Event eigentlich irgendwo bei der Aufnahme entstanden ist).


    Das Event wird übrigens nicht gesendet, wenn die Datenübertragung beim normalen Fernsehen (eines gestreamten Senders) aussetzt. Nur wenn gleichzeitig Timeshift läuft, wird das Event getriggert.


    Wie dem auch sei, ich habe mir folgenden Workaround gebastelt und kann jetzt ohne Probleme per rtsp gestreamte Sender timeshiften. Selbst bei heftiger anderweitiger Auslastung der Internetverbindung entstehen zwar Bildfehler in der Aufnahme - aber die Wiedergabe hält nicht mehr an:


    Diff
    1. --- a/Screens/InfoBarGenerics.py
    2. +++ b/Screens/InfoBarGenerics.py
    3. @@ -1286,6 +1286,9 @@
    4. return False
    5. def __evEOF(self):
    6. + if self.seekstate == self.SEEK_STATE_PLAY and self.timeshift_enabled:
    7. + return
    8. +
    9. if self.seekstate == self.SEEK_STATE_EOF:
    10. return


    Das ist aber natürlich kein Fix, sondern nur ein Workaround und der eigentliche Fehler, der dafür sorgt, dass das EOF-Event überhaupt erst verschickt wird, müsste im Core behoben werden, denke ich.


    Edit: Da self, wie ich gerade feststellen musste, auch durchaus mal ein EMCMediaCenter Objekt o.ä. sein kann, müsste man das bspw. noch in einen try except Block, der AttributeError abfängt, legen.

  • Funktioniert super bei mir. Danke für den Patch. Könnte man den Patch auch unter OE2.0 mit einer DM8000 nutzen? Also das DEB Packet ja nicht aber die anpassung sollte doch das Problem bei der 8000 auch lösen oder?

  • Da ich noch nie OE2.0 benutzt habe: Keine Ahnung wie die InfoBarGenerics.py damals aussah. Probiere es doch einfach aus. Mehr als einen Greenscreen zu bekommen kannst Du ja nicht kaputt machen - und in dem Fall machst Du Deine Änderungen halt wieder rückgängig.

  • werde ich mal versuchen wenn ich zeit habe. Ganz rund läuft es aber trotzdem nicht. Wenn ich jetzt Zeitversetzt schaue, hat er Probleme beim Aufnehmen der Live Sendung. Es kommt immer wieder zu kurzen Rucklern dann. Alles was ich Live schaue und dann zurückspule hat diese Ruckler nicht. Da wird wohl noch etwas anderes schieflaufen.

  • Das habe ich nicht. Habe letzten Montag erst was gestreamtes aufgenommen und da war kein einziger Ruckler drin.


    Edit: Aber ich streame auch von einem rtsp-Server und Du per Sat>IP. Vielleicht habe ich deshalb keine Ruckler.