Steamen mit streamdev-server

  • Hi,


    ich habe eine Frage zum streamdev-server Plugin. Wenn ich nur eine DVB-T Karte habe und z.B. zum VLC streame, kann ich nicht einfach auf einen Kanal auf einem anderem Transponder wechseln. Ich muss dafür immer erst den aktuellen Stream stoppen, ca. ein halbe Minute warten und kann erst dann den neuen Kanal empfangen.
    Wieso ist der Tuner so lange blockiert, bzw. auf den vorherigen Transponder festgestellt? Lässt sich dass ändern, so dann ich direkt nach dem stoppen des ersten Streams auf einen anderen Transponder wechseln kann?
    Auch eine zweite DVB-T karte löst das Problem nur bedingt, weil selbst dann spätestens beim Wechsel auf den dritten Transponder wieder schluss ist und ich warten muss. Mit einem lokalem VDR Frontend habe ich dieses Problem nicht und beim Streamen von DVB-S habe ich so etwas auch noch nicht beobachtet.


    Claus

    MLD 5.5 mit vdr 2.6 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.5 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.5 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • OK, ich hab hier nun die Logs. Dabei ist mir aufgefallen, dass das Problem nur besteht, wenn ich die Streams mit meinem Android Smartphone anschaue. Dabei starte ich die dort per AndroVDR und spiele den Stream per MX Player ab.
    Wenn ich die Streams am PC per VLC anschaue, kann ich beliebig zwischen den Sendern wechseln, ohne zwischendurch warten zu müssen.
    Hier nun die Logs beim Streamen per Smartphone:


    Claus

    MLD 5.5 mit vdr 2.6 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.5 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.5 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • Der Client öffnet immer mehrere Verbindungen:


    Hier kommt die erste Verbindung rein und es wird die DVB-Karte belegt:

    Code
    Jul 26 23:08:41 (none) user.info vdr: [4206] Streamdev: Accepted new client (HTTP) 192.168.178.34:56211
    Jul 26 23:08:41 (none) user.debug vdr: [4662] streamdev-livestreaming thread started (pid=4200, tid=4662, prio=high)
    Jul 26 23:08:41 (none) user.debug vdr: [4661] streamdev-writer thread started (pid=4200, tid=4661, prio=high)
    Jul 26 23:08:41 (none) user.debug vdr: [4663] receiver on device 1 thread started (pid=4200, tid=4663, prio=high)
    Jul 26 23:08:41 (none) user.debug vdr: [4664] TS buffer on device 1 thread started (pid=4200, tid=4664, prio=high)


    Dann kommt die zweite Verbindung, die aber gleich wieder abgebaut wird und folglich keine weitere Rolle spielt (was auch immer deren Zweck ist):

    Code
    Jul 26 23:08:47 (none) user.info vdr: [4206] Streamdev: Accepted new client (HTTP) 192.168.178.34:56212
    Jul 26 23:08:47 (none) user.debug vdr: [4666] streamdev-livestreaming thread started (pid=4200, tid=4666, prio=high)
    Jul 26 23:08:47 (none) user.debug vdr: [4665] streamdev-writer thread started (pid=4200, tid=4665, prio=high)
    Jul 26 23:08:48 (none) user.err vdr: [4206] ERROR: read from client (HTTP) 192.168.178.34:56212 failed: Connection reset by peer
    Jul 26 23:08:48 (none) user.info vdr: [4206] streamdev-server: closing HTTP connection to 192.168.178.34:56212
    Jul 26 23:08:48 (none) user.err vdr: [4665] ERROR: streamdev-server: couldn't send data: Bad file descriptor
    Jul 26 23:08:48 (none) user.debug vdr: [4665] streamdev-writer thread ended (pid=4200, tid=4665)
    Jul 26 23:08:48 (none) user.debug vdr: [4666] streamdev-livestreaming thread ended (pid=4200, tid=4666)


    Und hier nun die dritte Verbindung:

    Code
    Jul 26 23:08:48 (none) user.info vdr: [4206] Streamdev: Accepted new client (HTTP) 192.168.178.34:46600
    Jul 26 23:08:48 (none) user.debug vdr: [4668] streamdev-livestreaming thread started (pid=4200, tid=4668, prio=high)
    Jul 26 23:08:48 (none) user.debug vdr: [4667] streamdev-writer thread started (pid=4200, tid=4667, prio=high)


    Dann wird die erste Verbindung geschlossen. Die DVB-Karte bleibt aber offenbar von der dritten Verbindung belegt:

    Code
    Jul 26 23:08:58 (none) user.err vdr: [4206] ERROR: read from client (HTTP) 192.168.178.34:56211 failed: Connection reset by peer
    Jul 26 23:08:58 (none) user.info vdr: [4206] streamdev-server: closing HTTP connection to 192.168.178.34:56211
    Jul 26 23:08:58 (none) user.debug vdr: [4662] streamdev-livestreaming thread ended (pid=4200, tid=4662)
    Jul 26 23:08:58 (none) user.debug vdr: [4661] streamdev-writer thread ended (pid=4200, tid=4661)


    Rund zwei Minuten später nimmt der Client scheinbar keine Daten mehr an. Der Puffer von Streamdev läuft voll und Streamdev trennt die Verbindung Nummer drei. Jetzt wird auch die DVB-Karte wieder freigegeben:

    Code
    Jul 26 23:11:07 (none) user.debug vdr: [4663] buffer usage: 70% (tid=4668)
    Jul 26 23:11:08 (none) user.debug vdr: [4663] buffer usage: 80% (tid=4668)
    Jul 26 23:11:09 (none) user.debug vdr: [4663] buffer usage: 90% (tid=4668)
    Jul 26 23:11:10 (none) user.err vdr: [4663] ERROR: 1 ring buffer overflow (188 bytes dropped)
    Jul 26 23:11:13 (none) user.err vdr: [4667] ERROR: streamdev-server: couldn't send data: Connection timed out
    Jul 26 23:11:13 (none) user.info vdr: [4667] streamdev-server: closing HTTP connection to 192.168.178.34:46600
    Jul 26 23:11:13 (none) user.debug vdr: [4667] streamdev-writer thread ended (pid=4200, tid=4667)
    Jul 26 23:11:13 (none) user.debug vdr: [4668] streamdev-livestreaming thread ended (pid=4200, tid=4668)
    Jul 26 23:11:13 (none) user.debug vdr: [4664] TS buffer on device 1 thread ended (pid=4200, tid=4664)
    Jul 26 23:11:13 (none) user.debug vdr: [4663] receiver on device 1 thread ended (pid=4200, tid=4663)


    Das gleiche Spiel mit den drei Verbindungen wiederholt sich dann mit BFS.
    Scheinbar streamst Du im PES-Format. Tritt das bei TS auch auf?


    Was mir auffällt: Der Quellport der ominösen dritten Verbindungen unterscheidet sich deutlich von den Quellports der ersten beiden, was auf eine andere Anwendung hindeuten könnte. Vielleicht ein Virenscanner oder AndroVDR und MX-Player öffnen beide eine Verbindung? Ich fürchte, mehr kann ich Dir da nicht weiterhelfen. Vielleicht weiß der Entwickler von AndroVDR weiter.

  • Danke für die Erklärung. Dann werde ich mal schauen ob ich herausfinde wo die Verbindungen her kommen.


    Claus

    MLD 5.5 mit vdr 2.6 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.5 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.5 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

Jetzt mitmachen!

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