[Gelöst] Bildaussetzter auf dem Server bei Auslastung + Streamdev-Client

  • Ich suche die Ursache für das folgendes reproduzierbare Problem. Unser Hauptgerät (siehe Sig.) hat 3 Karten. 2 Aufnahme laufen (verschiedene Transponder). Wir schauen uns eine der Aufnahmen zeitversetzt an. Jetzt schaut unsere Tocher auf dem Client per streamdev einen weiteren Sender and (3. Transponder). Theoretisch sollte diese Konstellation doch problemlos funktionieren, da ich 3 Karten habe.


    Allerdings kommt es beim Anschauen der Aufnahme etwa 1-2 mal pro Minute zu kurzen Bildaussetzern auf dem Server (Bild wird kurz schwarz) dann geht es weiter. Sieht für mich so aus als versucht der Server aus irgendeinem Grund kurz umzuschalten, was aber aufgrund der belegten Karten fehlschlägt. Im Log habe ich noch nichts dazu gefunden.


    Ich habe das Problem auch schon beim anschauen von Live-TV gesehen, immer dann wenn alle Karten durch TV, Aufnahmen + Streaming belegt sind. Ich werde das Problem nochmal nachstellen und versuchen genauer zu analysieren.


    Irgendwelchen Ideen / Lösungsvorschläge dazu?


    Danke!

    VDR: Silverstone SG05 Lite, ASRock MB H510M-HDV R2.0, I3 10100, 8GB RAM, Ubuntu 22.04, vdr 2.6.4, 120GB SSD, 8TB SSD, Digital Devices Max S8X, Nvidia GT730, IR-WAKEUP USB

    Edited once, last by wtor ().

  • Habe gerade deine CVS Version inkl. Patch eingespielt. Die kurze Bildunterbrechung hatte ich beim kurzen Test gerade nicht, werde ich aber nochmal testen, wenn das Gerät länger frei ist. Das Problem bestand übrigens beim Live-TV schauen nicht bei Aufnahmen - habe ich verwechselt, sorry.


    Aber ich habe ein ähnliches Problem welches auch schon zuvor bestand (hatte ich nur vergessen zu erwähnen):


    Auf dem Server (3 Karten, streamdev konfiguriert = nie pausieren) laufen 2 Aufnahmen. Eine davon schaue ich zeitversetzt an. Starte ich jetzt den Stremdev-Client, dann wird die Wiedergabe auf dem Server gestoppt. Auch stoppt die Wiedergabe bei jedem Umschalten auf dem Client. Mit stoppen meine ich, das die Aufnahme richtig angehalten wird (Menü kommt hoch) und ich sie wieder starten muss.


    Warum? Ressourcen sollten doch genug vorhanden sein.

    VDR: Silverstone SG05 Lite, ASRock MB H510M-HDV R2.0, I3 10100, 8GB RAM, Ubuntu 22.04, vdr 2.6.4, 120GB SSD, 8TB SSD, Digital Devices Max S8X, Nvidia GT730, IR-WAKEUP USB

    Edited once, last by wtor ().

  • Richtig, ich schaue über die FF-Karte (die Signatur passt). Das Problem hatte ich vor und auch nach Einspielen der CVS-Version. Im Log hatte ich gestern auf die schnelle nicht besonders gefunden. Ich werde das heute Abend noch mal etwas ausführlicher testen. Kann man evtl. das Loglevel erhöhen, falls nichts im Log steht?

    VDR: Silverstone SG05 Lite, ASRock MB H510M-HDV R2.0, I3 10100, 8GB RAM, Ubuntu 22.04, vdr 2.6.4, 120GB SSD, 8TB SSD, Digital Devices Max S8X, Nvidia GT730, IR-WAKEUP USB

  • VDR selbst sollte mit Option -l 3 laufen. Wenn Du willst kannst Du zusätzlich streamdev mit debugging kompilieren. Dazu im streamdev-Ordner "make clean; DEBUG=1 make" ausführen. Die Debug-Ausgaben kommen über stderr. Beim Start von VDR also bitte in eine Datei umlenken.

  • Habe das Problem nochmal nachgestellt. Ablauf:


    1. Aufnahme Kanal 1 (ARD)
    2. Aufnahme Kanal 2 (ZDF)
    3. Kanal 9 (3sat) anschauen
    4. Wiedergabe einer beliebigen Aufnahme


    5. Jetzt einen Streamdev-Client starten -> Wiedergabe der Aufnahme stoppt
    6. Aufnahme weiter anschauen
    7. Umschalten auf dem Streamdev-Client -> Wiedergabe der Aufnahme stoppt meistens (scheint vom Transponder abzuhängen).


    Im log sieht man zum Umschaltzeitpunkt "switching to channel 9". Das ist 3sat, der Kanal der vor der Wiedergabe schon lief (der Client wurde auf einen anderen Kanal geschaltet).


    D.h. beim Streamdev-Client-Umschalten wird meistens (vermutlich Transponderabhängig) auf dem Server der zuvor bereits eingestellt Sender nochmals eingeschaltet, was zum Stopp der Wiedergabe führt. Zum Test habe ich auch mal den Kanal danach mit svdrpsend.pl während der Aufnahme eingestellt - da stoppt auch die Wiedergabe.


    Hier noch ein Stück Log:


    Den Streamdev-Client habe ich zwischdurch auch mal neu gestartet (siehe log). die "switching to channel 9" Einträge kamen immer direkt beim Client Start oder beim umschalten.


    Die Frage ist jetzt, wieso wird auf dem Server dieser Kanal erneut eingeschaltet wenn doch eine Aufnahme wiedergegeben wird?

    VDR: Silverstone SG05 Lite, ASRock MB H510M-HDV R2.0, I3 10100, 8GB RAM, Ubuntu 22.04, vdr 2.6.4, 120GB SSD, 8TB SSD, Digital Devices Max S8X, Nvidia GT730, IR-WAKEUP USB

  • schmirl, brauchst Du noch andere Daten (Log, Debug, ...) um das Problem analysieren zu können? Sag einfach Bescheid, ich gebe Dir (fast :lachen3) alles was Du brauchst.

    VDR: Silverstone SG05 Lite, ASRock MB H510M-HDV R2.0, I3 10100, 8GB RAM, Ubuntu 22.04, vdr 2.6.4, 120GB SSD, 8TB SSD, Digital Devices Max S8X, Nvidia GT730, IR-WAKEUP USB

  • Hi,


    ich habe auch seit geraumer Zeit Probleme mit dem VDR und Bildaussetztern. Ich nutze auch den Streamdev. Mir ist aufgefallen, dass der VDR immer 100% Last erzeugt, obwohl ich alle Plugins bis auf Streamdev und Dummydevice deaktivert habe und auch das Record-Verzeichniss leer ist.
    Ist bei Dir auch der VDR ausgelastet?


    LG
    Markus

    Streamingclient: Debian Squeeze mit etoby Paketen vdrdevel 1.7.14, Hauppauge Nexus-S (Tuner defekt), Intel-Atom 330
    Streamingserver: Debian Squeeze mit etoby Paketen vdrdevel 1.7.14, Skystar 2, Hauppauge Nova DVB-S2, Cel. 2,4 GHz, 512MB, 40GB HD

  • Quote

    schmirl, brauchst Du noch andere Daten (Log, Debug, ...) um das Problem analysieren zu können? Sag einfach Bescheid, ich gebe Dir (fast :lachen3) alles was Du brauchst.


    Das Log ist recht eindeutig. Für den Moment habe ich daher alles. Nur die Zeit fehlt um dem ganzen auf den Grund zu gehen...

  • MarkusK: Nö, der vdr ist bei mir immer so gut wie idle. Das ist definitiv ein anderes Problem, evtl. gibt der Log dazu mehr her (und dann ist es auch einen eigenen Thread wert).


    schmirl: kein Problem, wir haben doch alle noch ein zweites Leben neben dem vdr...

    VDR: Silverstone SG05 Lite, ASRock MB H510M-HDV R2.0, I3 10100, 8GB RAM, Ubuntu 22.04, vdr 2.6.4, 120GB SSD, 8TB SSD, Digital Devices Max S8X, Nvidia GT730, IR-WAKEUP USB

    Edited once, last by wtor ().

  • Ich habe mir gerade das Problem mal etwas genauer angeschaut. Das Problem ergibt sich durch SwitchChannel(current, true) in connection.c. True schaltet im LiveView um, was zum Stop der Aufnahme führt. Beim Test mit false stoppte die Aufnahme zwar nicht, allerdings sind dann nicht alle Sender für streamdev verfügbar.


    Um das Problem zu lösen, müsste man die FF-Karte über die gerade die Wiedergabe einer Aufzeichung läuft umschalten, ohne die Wiedergabe zu beeinflussen. Ich blicke da allerdings noch nicht ganz durch :schiel


    Da meine Zeitscheibe auf dem vdr gerade wiedermal zugunsten der Familie abgelaufen ist :motz2, muss ich erstmal Pause machen ...

    VDR: Silverstone SG05 Lite, ASRock MB H510M-HDV R2.0, I3 10100, 8GB RAM, Ubuntu 22.04, vdr 2.6.4, 120GB SSD, 8TB SSD, Digital Devices Max S8X, Nvidia GT730, IR-WAKEUP USB

  • Erstmal Danke für deine Antwort!


    Habe deinen Vorschlag mal kurz getestet und die 3 Stellen geändert. Die laufende Wiedergabe einer Aufzeichnung wird jetzt nicht mehr abgebrochen - schonmal gut. Aber es gibt 2 Probleme:


    1) Schaue ich Live-TV anstatt einer Aufnahme, dann wird das Live TV abgebrochen und der Streamdev-Client schnappt sich den Sender - zuvor kam dann "Kanal nicht verfügbar".


    2) Aufnahme ARD + ZDF + LiveTV SAT1. Dann Wiedergabe der Aufnahme vom ZDF starten. Jetzt Streamdev-Client starten. Der startet mit dem letzten Kanal z.B. RTL. Alles ok. kein Wiedergabeabbruch. Jetzt schaltet ich auf dem Streamdev-Client um: RTL2, VOK, Pro7 - alles ok. Aber nach Pro7 kann ich nur noch diesen Transponder (und den von ARD und ZDF) nutzen = Start-Tansponder (SAT1).


    Hier der Log zu 2:



    Vieleicht hast Du ja auch noch 'ne Idee dazu.

    VDR: Silverstone SG05 Lite, ASRock MB H510M-HDV R2.0, I3 10100, 8GB RAM, Ubuntu 22.04, vdr 2.6.4, 120GB SSD, 8TB SSD, Digital Devices Max S8X, Nvidia GT730, IR-WAKEUP USB

  • Quote

    1) Schaue ich Live-TV anstatt einer Aufnahme, dann wird das Live TV abgebrochen und der Streamdev-Client schnappt sich den Sender - zuvor kam dann "Kanal nicht verfügbar".


    Bei "internem" Live-TV auf der FF-Karte ist vermutlich kein Receiver am Werk, folglich gibt Receiving() false zurück. Wäre zumindest eine plausible Erklärung. Klappt es, wenn Du anstelle von "&& device->Receiving()" ein "&& (!device->IsPrimaryDevice() || !device->Replaying())" verwendest?

  • Vielen Dank schonmal! Das Ergebnis wird immer besser. Ich weiß, das es immer problematisch ist einen Fehler einzukreisen, wenn man ihn nicht selbst nachstellen kann.


    Habe deine Änderung getestet. Ergebnis:


    1) bei LiveTV kommt jetzt "Kanal nicht verfügbar" auf dem Streamdev-Client, wenn der Sender auf einem nicht verfügbaren Transponder liegt. Soweit ok, aber bei jedem Versuch auf einen nicht verfügbaren Sender zu schalten (oder auf den Sender der FF-Karte) wird das Bild auf dem Server (FF-Karte) für eine halbe Sekunde schwarz, dann läuft der vorherige Sender weiter.


    2) Das Problem des Wiedergabeabbruchs ist damit gelöst. Auch sind für den Streamdev-Client alle Sender verfügbar. Klasse!


    Bleibt nur noch das Problem 1.


    Sag Bescheid wenn Du noch mehr (Logs) brauchst!

    VDR: Silverstone SG05 Lite, ASRock MB H510M-HDV R2.0, I3 10100, 8GB RAM, Ubuntu 22.04, vdr 2.6.4, 120GB SSD, 8TB SSD, Digital Devices Max S8X, Nvidia GT730, IR-WAKEUP USB

  • Wenn das Bild kurz schwarz wird, ist vermutlich cServerConnection::GetDevice aufgerufen worden. Wenn das passiert, muss zuvor cServerConnection:: ProvidesChannel der Meinung gewesen sein, der Kanal kann ohne weiteres angezeigt werden. Könntest Du in diese beiden Methoden nach allen Aufrufen von CheckDevice und cDevice::GetDevice Ausgaben ins Log einbauen? So sollte sich nachvollziehen lassen, wo streamdev sich für welches Device entschieden hat. Das Logging könnte in etwa so aussehen:

    Code
    dsyslog("Eindeutige ID Device=%d", device ? device->CardIndex() : -1);
  • Habe den Log mal kurz eingebaut (erstes Word is die Methode und die Zahl danach der Logeintrag nach dem X. auftreten von CheckDevice oder cDevice::GetDevice). Es ging ohne schwarzes Bild, bis ich zum ersten Mal mit dem Streamdev-Client auf den Transponder der FF-Karte schalte. Danach wird es immer kurz schwarz, wenn ich versuche auf einen nicht verfügbaren Sender zu schalten (es kommt dann "Transfermode kann nicht gestartet werden). Hier der Log:



    Ich hoffe es hilft.

    VDR: Silverstone SG05 Lite, ASRock MB H510M-HDV R2.0, I3 10100, 8GB RAM, Ubuntu 22.04, vdr 2.6.4, 120GB SSD, 8TB SSD, Digital Devices Max S8X, Nvidia GT730, IR-WAKEUP USB

  • Danke für die Rückmeldung. Kein Problem wenn es länger dauert, unsere Tochter hat zwischenzeitlich eine eigene DVB-Karte bekommen. Damit ist die Lage etwas entspannter...


    Habe wieder getestet. 2 Aufnahmen (ARD + ZDF). Beim Zocken auf dem streamdev-Client wird ein laufende Wiedergabe auf dem Server nicht abgbrochen (ging ja mit deiner letzten Änderungen schon).


    Jetzt schaue ich Sat1 auf dem Server und starte den Client (kommt z.B. mit ARD):


    - Umschalten Client auf ZDF: OK
    - Umschalten Client auf Sat1: Server Bild wird kurz schwarz, dann alles ok
    - Umschalten Client auf RTL: Server Bild wird kurz schwarz und "Kanal nicht verfügbar kommt" 2x und Client meldet "Transfermode kann nicht gestartet werden", dann Serverbild Sat1 wieder ok, Client geht zum letzten Sender zurück


    Hier der Server-Log dazu:



    Und der Client-Log:



    Aktuell behelfen wir uns in diesem Fall einfach damit, dass wir den 3. Kanal den wir schauen wollen einfach noch als 3. Aufnahme anwerfen, dann ist das Serverbild ok.

    VDR: Silverstone SG05 Lite, ASRock MB H510M-HDV R2.0, I3 10100, 8GB RAM, Ubuntu 22.04, vdr 2.6.4, 120GB SSD, 8TB SSD, Digital Devices Max S8X, Nvidia GT730, IR-WAKEUP USB

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!