No free receiver slot - Problem ab 20 Clients mit streamdev-server

  • Hallo,


    ich habe anlässlich der Fußball-WM in unserer Firma einen VDR in Version 1.7.4
    auf Ubuntu 10.04 mit 3 Hauppauge Nova-T DVB-T Sticks in Betrieb genommen,
    um die Spiele in's Netzwerk zu streamen.
    Die Clients sind VLC 1.0.5 und das Streaming funktioniert auch soweit.
    Die Clients verbinden sich direkt mit dem VDR und empfangen den Stream
    ohne Transkodierung als TS oder PS.


    Beim heutigen Eröffnungsspiel kam es zu folgendem Phänomen:
    Ab ca. 20 Verbindungen wurde weitere Verbindungsversuche auf dem selben
    Sender mit der VDR-Fehlermeldung "no free receiver slot" im syslog quittiert.
    Dabei war es immer noch möglich einen anderen Sender als Stream zu empfangen.
    Nur auf dem Sender, der bereits von 18/19 Clients bezogen wurde, war keine Verbindung mehr möglich.


    Kennt jemand dieses Merkwürdigkeit?
    Ist das eine Limitation der verwendeten DVB-T Sticks?
    Bisher war ich davon ausgegangen, dass eher das Netzwerk
    beim Unicast-Streaming der limitierende Faktor ist als der VDR.


    Grüße und vielen Dank für jeglichen Ratschlag
    Kleo

    VDR-Server: Core i3-6100, 8GB Ram, Gigabyte Board, Adata SSD, Ubuntu 16.04, Kodi 16.1 + PVR über VNSI

    Einmal editiert, zuletzt von Kleo ()

  • Zitat

    Original von Kleo
    Ist das eine Limitation der verwendeten DVB-T Sticks?


    Ich würde auf NEIN tippen, zwischen dem DVB-T Stick und den Clients sitzt ja noch der vdr und der Streaming-server.


    Zitat

    Bisher war ich davon ausgegangen, dass eher das Netzwerk
    beim Unicast-Streaming der limitierende Faktor ist als der VDR.


    Warum bei der Menge an Clients nicht Multicast anstatt Unicast?

  • device.h:

    Code
    #define MAXRECEIVERS       16 // the maximum number of receivers per device


    und device.c:

    Code
    for (int i = 0; i < MAXRECEIVERS; i++) {
    ...
      }
    esyslog("ERROR: no free receiver slot!");
    return false;


    wobei bei Dir dann eigentlich nicht 16 für MAXRECEIVERS stehen dürfte.

  • Zitat

    Original von Kleo
    Ab ca. 20 Verbindungen wurde weitere Verbindungsversuche auf dem selben
    Sender mit der VDR-Fehlermeldung "no free receiver slot" im syslog quittiert.
    Dabei war es immer noch möglich einen anderen Sender als Stream zu empfangen.
    Nur auf dem Sender, der bereits von 18/19 Clients bezogen wurde, war keine Verbindung mehr möglich.


    Da Du einen 1.7er VDR verwendest nehme ich mal an dass Du den selber bauen kannst.


    Schuss ins Blaue, im 1.6.0 Quelltext etwas geforscht: versuch mal MAXRECEIVERS in device.h höher zu setzen und bau dann neu. device.c schreibt die Fehlermeldung nachdem es in einer Schleife bis MAXRECEIVERS gelaufen ist.

    VDR "headless" Server:

    • Whitebox mit Supermicro X10SLL+-F, Xeon Prozessor, 16 GB RAM als ESXi Host, Debian VM für VDR, Digital Devices Cine S2 mit VT-d Passthrough an die VM
    • Debian, VDR 2.2 mit epgsearch, streamdev-server und live Plugins

    Client: Laptop, Windows und OS X, VLC Media Player

  • Danke für die Antwort.


    Zu deiner ersten Vermutung:
    Mich verwundert, dass sich - bei 20 ARD schauenden Clients - ohne Probleme
    weitere auf ZDF (also einem anderen Stick) verbinden können.
    Einzig weitere Verbindungsversuche auf ARD werden mit der genannten Fehlermeldung quittiert.


    Multicasting wäre sicherlich die bessere Variante. Aber soweit ich weiß, müssen dann die Router usw.
    speziell konfiguriert werden und die liegen nicht in meinem direkten Zugriff.
    Aber ausgeschlossen ist ein Wechsel auf Muklticasting trotzdem nicht.


    Grüße, Kleo

    VDR-Server: Core i3-6100, 8GB Ram, Gigabyte Board, Adata SSD, Ubuntu 16.04, Kodi 16.1 + PVR über VNSI

    Einmal editiert, zuletzt von Kleo ()

  • tbshl-vdr


    das ist'n timing :)

    VDR "headless" Server:

    • Whitebox mit Supermicro X10SLL+-F, Xeon Prozessor, 16 GB RAM als ESXi Host, Debian VM für VDR, Digital Devices Cine S2 mit VT-d Passthrough an die VM
    • Debian, VDR 2.2 mit epgsearch, streamdev-server und live Plugins

    Client: Laptop, Windows und OS X, VLC Media Player

  • Zitat

    Original von BerndV
    tbshl-vdr


    das ist'n timing :)


    Hehe, ja ;)


    Aber was etwas unklar ist, ist die 20. Hab 1.7.5er Quellen hier, da ist MAXRECEIVERS auch 16, aber kann bei Kleo ja auch anders sein. Weiss aber auch grad nicht, ob streamdev immer einen neuen Receiver anmeldet, oder bei gleichem Kanal/PID nicht. Aber auch dann, warum 20?
    Ein raufsetzen von MAXRECEIVERS sollte aber auf jeden Fall erstmal Abhilfe schaffen.

  • Zitat

    Original von tbshl-vdr
    Aber was etwas unklar ist, ist die 20. Hab 1.7.5er Quellen hier, da ist MAXRECEIVERS auch 16, aber kann bei Kleo ja auch anders sein.


    Kleo hat die 20 vielleicht nur geschätzt?

  • Danke für die Denkanstösse. Dann werde ich mir mal überlegen,
    ob selbst gebaut wird oder eher auf Multicasting umgestiegen wird.


    Auf die zwanzig bin ich gekommen, weil ich mit netstat nach den auf Port 3000
    verbundenen Clients geschaut habe und das ist sicherlich nicht 100% zuverlässig.
    Ich vermute auf Port 3000 findet eher die Kontaktaufnahme und die Kontrolle des Streams statt.


    Eine Sache noch...solche Konstanten wie MAXRECEIVERS haben doch auch ihren Sinn!?
    Den Wert auf 25 oder so zu erhöhen, ist in diesem Fall sicher unkritisch,
    Aber wesentlich mehr als das sollte es wahrscheinlich nicht werden...


    Grüße, Alex

    VDR-Server: Core i3-6100, 8GB Ram, Gigabyte Board, Adata SSD, Ubuntu 16.04, Kodi 16.1 + PVR über VNSI

    Einmal editiert, zuletzt von Kleo ()

  • Zitat

    Original von Kleo
    Eine Sache noch...solche Konstanten wie MAXRECEIVERS haben doch auch ihren Sinn!?


    In dem Fall wird halt ein Array von cReceiver statisch angelegt, also immer die mit MAXRECEIVERS festgelegte Anzahl. D.h., es wird immer Speicher für diese Anzahl reserviert, egal ob die nun auch benötigt werden oder nicht.


    Zitat

    Original von Kleo
    Den Wert auf 25 oder so zu erhöhen, ist in diesem Fall sicher unkritisch,


    Etliches mehr sicher auch nicht, nur möglichst nicht so viel mehr, dass dann phys. vorhandener Speicher nicht ausreicht. Der Speicher, den jeder receiver dann evtl. selbst noch irgendwo braucht muss natürlich auch noch beachtet werden, aber in der Grössenordnung sollte das lange kein Problem geben.

  • Zitat

    Original von Kleo
    Den Wert auf 25 oder so zu erhöhen, ist in diesem Fall sicher unkritisch,
    Aber wesentlich mehr als das sollte es wahrscheinlich nicht werden...


    Da wirst Du auch 100 hinschreiben können und der VDR braucht dann nur marginal mehr Speicher.

    VDR "headless" Server:

    • Whitebox mit Supermicro X10SLL+-F, Xeon Prozessor, 16 GB RAM als ESXi Host, Debian VM für VDR, Digital Devices Cine S2 mit VT-d Passthrough an die VM
    • Debian, VDR 2.2 mit epgsearch, streamdev-server und live Plugins

    Client: Laptop, Windows und OS X, VLC Media Player

Jetzt mitmachen!

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