Beiträge von maluhi

    Ich hoffe, dass vorallem bei Problem 1) noch nachgebessert wird. Die beiden anderen Probleme sind eher nebensächlich, da sie die Funktionalität an sich nicht beeinträchtigen.
    Problem 1) allerdings bewirkt deutliche Einbußen der Bildqualität, wenn man Unterwegs streamed, da man die bitrate viel niedriger Einstellen muss als es eigentlich nötig wäre.
    Dafür dürften die anderen beiden Probleme aber im Gegensatz zu 1) auch deutlich leichter zu beheben sein.

    RTSP sieht echt gut aus!


    Bei HLS gibt es aber noch ein paar Probleme:


    1) Mit dem alten Streamserver konnnte ich 6000kbit/s video und 256 kbit/s audio flüssig auch per HLS streamen. dreamliveserver scheint aber bzgl. der Übertragungsgeschwindigkeit um einiges langsamer zu sein, weshalb die segments nicht rechtzeitig ankommen, recht bald der Buffer aufgebraucht ist und es zu Aussetzern kommt.
    Ich habe mal schnell ein bisschen mit Video-JS rumgespielt und einen Web-Player gebastelt und man sieht in den Chrome Developer-Tools, dass die Übertragung der segments deutlich länger benötigt, obwohl diese sogar kleiner sind als beim alten Streamserver. Sogar bei 4000 kbit/s video und nur 1,1MB großen Segments, dauert die Übertragung immer über 2 Sekunden. Der alte Streamserver hat 1,7MB große Segments in unter 2 Sekunden übertragen. Und nein, das liegt nicht an Verbindungsproblemen bei mir - ich habe das mehrmals getestet und immer wieder mal den alten und mal den neuen Server installiert. (Habe übrigens einen 10 Mbit/s Upstream am Server, der zum Testzeitpunkt für nichts anderes benutzt wurde). Davon ab sieht die Zeitleise oben in den Developer Tools so aus, als ob der Server nach jedem Request die Verbindung schließt (ein Connection: close Header wird aber nicht gesendet).


    2) Übergibt man einen service und ruft bspw. http://[IP]:8080/stream.m3u8?ref=1%3a0%3a19%3a157F%3a41F%3a1%3aC00000%3a0%3a0%3a0%3a auf, kommt als Antwort { result: true }. Erst beim erneuten Aufruf erhält man die eigentliche m3u8


    3) Schließt man den Player wird oft (aber nicht immer) beim anschließenden Beenden von dreamliveserver der core gedumpt. Beispiel: https://www.dropbox.com/s/9yanpmal7mes9q9/core.17261?dl=0

    Habs vorhin installiert und konnte auf den ersten Blick keine Probleme erkennen. Gute Arbeit! Ich lasse das jetzt mal so laufen und berichte, falls mir etwas auffällt.

    @Ghost, ich mache einfach mal hier weiter, dann brauchen wir das nicht im GstRtspServer Thread klären.


    Wie versprochen heute mein Test. Ich habe per rtsp zwar Ton, aber kein Bild. Per HLS funktioniert gar nichts.



    Error 22 bei SetGopOnSceneChange und SetSlices kommt nicht von meiner Config. Ich habe testweise die config gelöscht und es tritt auch mit den Defaults auf:


    Code
    Apr 27 13:22:58 dm820 dreamliveserver[31071]: DreamLiveServer: Couldnt load the settings, using default values!
    Apr 27 13:22:58 dm820 dreamliveserver[31071]: SetGopOnSceneChange - Error: 22
    Apr 27 13:22:58 dm820 dreamliveserver[31071]: SetSlices - Error: 22
    Apr 27 13:22:58 dm820 dreamliveserver[31071]: Play the RTSP stream using the URL "rtsp://192.168.0.57/stream"
    Apr 27 13:22:58 dm820 dreamliveserver[31071]: We use port 8081 for optional RTSP-over-HTTP tunneling.
    Apr 27 13:22:58 dm820 dreamliveserver[31071]: Play the HLS stream using the URL "http://192.168.0.57:8080/stream.m3u8"
    Apr 27 13:23:03 dm820 dreamliveserver[31071]: Shutting down DreamLiveServer!

    Benutze eine dm820, die gar keine Scene Detection und Slices kann. Da das Problem auch auftritt, wenn enigma2 gestoppt ist, kann es auch nicht an irgendwelchen Python Scripts liegen, sondern ist im Code von dreamliveserver.

    Also kurzer Zwischenstand: Hab mit der neuen Version nur Ton, aber kein Bild. Kann jetzt aber nicht genauer Testen, weil meine bessere Hälfte Fernsehen möchte und ich erstmal GstRtspServer wieder installiert.
    Ich teste morgen aber mal etwas ausgiebiger und sage bescheid.

    Danke, verstehe ich aber nicht so ganz. Der Slider ist doch in StreamServerSeek und das funktioniert im aktuellen Image sowohl mit neuem Server, als auch mit dem alten Server, wenn man GstRtstServer installiert.
    Davon ab gibt es wohl seit gestern eine neue Version von dreamliveserver auf dem Feed. Habe die zwar noch nicht getestet, aber die soll viel stabiler laufen und macht dann GstRtspServer bzw. den alten Server obsolet.


    Was ging denn bei Dir m aktuellen Image nicht?

    Irgendwie hat er das automatisch zum letzten offenen PullRequest für pipzap dazugepackt. :winking_face:
    Konnte gar keinen neuen PullRequest machen.

    Wenn man einen Pull-Request macht, werden alle Commits, die man in der zu pullende Branch macht, automatisch dem Pull-Request hinzugefügt. Am besten machst Du daher für Pull-Requests eine eigene Branch (in Deinem Repo) und erstellst dann einen Pull-Request, um Deine Branch in die master Branch von upstream zu mergen.

    Version 0.8 hat jetzt ein einfaches Web-Interface, dass (noch) nur einen Slider beinhaltet, mit dem man einfach seeken kann. Zu finden unter http://[IP]/streamserverseek/
    Getestet habe ich das im Chrome und iOS Safari. Gern auch in anderen Umgebungen testen!


    Außerdem gibt es jetzt die Api-Funktion "getinfo", die auch vom Web-Interface benutzt wird.
    Damit eure Versionen hier aus dem Thread nicht von einer alten Version auf dem Feed überschrieben werden, bitte den Hinweis am Ende des ersten Posts beachten.

    Wenn es bei Dir läuft und es keine Abstürze gibt, solltest Du es so lassen wie es ist und den alten Streamserver nicht installieren. Der ist nur dafür da, falls man Probleme mit dem aktuellen hat. Und Du würdest dann eh keinen Unterschied merken, wenn es auch jetzt schon problemlos klappt :smiling_face:


    Reichi muss da nichts anpassen, da die meisten ja StreamServerSeek gar nicht installiert haben. Wenn dann müsste ich das überschreiben irgendwie oder einen eigenen Filebrowser mit aufnehmen oder so.

    Verbesserungen in 0.7:


    - Der TypeError-Bug ist behoben!


    - Der alte Service wird jetzt vor dem Start des temporären Live-Mode gespeichert und vor dem Beenden wieder auf diesen gewechselt.


    - Das wechseln zwischen Filmen im temp Live-Mode klappt jetzt besser. Man muss den temp Live-Mode jetzt nicht mehr verlassen, sondern kann einfach zwischen Filmen wechseln.


    Probleme:


    - Wechselt man mehrmals relativ schnell hintereinander den Film, kann es vorkommen, dass dreamliveserver abstürzt. Dabei zerhaut es dann auch irgendetwas im core, so dass man komplett neustarten muss, damit es wieder funktioniert. Daran kann ich leider nichts ändern, da das außerhalb des Plugins geschieht. Handelt sich wohl um eine der Kinderkrankheiten von dreamliveserver. Mit dem alten dreamrtspserver konnte ich das bisher nämlich nicht reproduzieren, da funktioniert alles und ich kann damit sowohl per VLC+rtsp als auch iPhone Safari+HLS problemlos hin und her wechseln und seeken. Wenn Du mal mit dem alten Server gegentesten möchtest: GstStreamServer (alter dreamrtspserver)

    Neue Version 0.5:


    Der Client muss nun nicht mehr neu connecten, wenn der Input-Mode geändert wird. Man connected nun über http://[IP]/streamserverseek/stream/protocol/pfad (Anleitung in Post 1), das Plugin nimmt alle nötigen Einstellungen vor, startet den Streamserver bei Bedarf neu und leitet den Client erst dann weiter zum Stream.


    Außerdem sollte HLS jetzt vernünftig funktionieren.

    Sieht für mich eher so aus, als wenn der dreamliveserver auf der Server-Box beim starten des Streams abraucht, der Client dann immer neu verbindet und die Fehermeldung von einem vorherigen Versuch stammt.


    Eigentlich müsstes Du ein Serverlog anhängen, nur journalctl -f (ohne -u enigma2), damit man das mal überprüfen kann. Aber das würde wohl bei Dir gegen die Boardregeln verstossen.


    Probiere vllt mal den alten streamserver. Evtl hilft das. GstStreamServer (alter dreamrtspserver)

    Danke fürs Testen!


    Ich mache im Moment CEC nur kurz aus, schalte die Box an, und enable es danach direkt wieder. Vielleicht sollte ich das den ganzen temporary Live-Mode über deaktivieren. Oder Dein TV geht automatisch an, nur weil ein Signal kommt.


    Dass die Box beim iPad nicht automatisch ausging liegt daran, dass das Event onRtspClientCountChanged anscheinend nur bei rtsp Clients ausgelöst wird und ich somit gar nicht mitbekommen habe, dass der HLS Client wieder disconnected hat. Das bekomme ich aber wahrscheinlich gelöst, wenn ich hlsState überwache.


    Dazu habe ich noch ein anderes Problem gesehen, das anscheinend auch nur bei HLS auftritt.


    Ich werde das aber wahrscheinlich erst nächste Tage irgendwann fixen können, da ich aktuell wieder einen vollen Zeitplan habe. Aber Dein Log hat definitiv geholfen. Vielen Dank!