VDR IGMP Multicast Streaming Server

  • Hallo vdr-ler,


    habe jetzt mehr durch Zufall nach einem Update des streamdev-server Plugins (Debian sid) in dessen Menü entdeckt, dass man damit IGMP / TS Multicast-Streaming machen kann. Nach durchlesen der Doku und den erforderlichen kleinen Änderungen scheint er diesen IGMP Service auch zu starten, aber ich kann auf den Stream mit vlc nicht zugreifen. Ausserdem bringt er einen blöden Fehler mit zu wenig Hauptspeicher und so. Wie sollte das jetzt gehen und / oder wo kann ich da mal ausführliche Infos finden?


    Auszug aus dem syslog:


    vdr: [32334] loading plugin: /usr/lib/vdr/plugins/libvdr-streamdev-server.so.1.6.0
    vdr: [32334] initializing plugin: streamdev-server (0.5.0-pre): VDR Streaming Server
    vdr: [32334] starting plugin: streamdev-server
    vdr: [32343] streamdev-server IGMP: unable to join 239.255.0.20: Kein Hauptspeicher für den Puffer verfügbar
    vdr: [32343] streamdev-server IGMP: Received V2 membership report from xx.xx.xx.xx (dst 224.0.0.2) for 224.0.0.2
    vdr: [32343] streamdev-server IGMP: Received V2 membership report from xx.xx.xx.xx (dst 224.0.0.2) for 224.0.0.2


    Plugin-Info:
    vdr-plugin-streamdev-server
    0.3.4+cvs20090707.2111-2+b1 VDR Plugin to stream Live-TV to other VDR's

  • Der Fehler beim join ist im README beschrieben:

    Zitat

    By default, the linux kernel will refuse to join more than 20 multicast groups. You might want to increase this up to "number_of_channels + 1". Note that it's "number_of_channels", not "maximum_channel_number".
    #First 100 channels:
    bash# sysctl -w sys.net.ipv4.igmp_max_memberships=101
    #All channels:
    bash# COUNT=$(grep -c '^[^: ]' PATH_TO_YOUR/channels.conf)
    bash# sysctl -w sys.net.ipv4.igmp_max_memberships=$COUNT


    Was hast Du als URL im vlc eingegeben und welche vlc-Version verwendest Du?

  • Hi,
    der Startfehler ist wech, das hatte ich jetzt schon gelesen.


    vlc ist der:


    vlc:
    Installiert: 1.0.1-1+b1
    Kandidat: 1.0.1-1+b1
    Versions-Tabelle:
    *** 1.0.1-1+b1 0
    500 http://ftp.de.debian.org unstable/main Packages
    100 /var/lib/dpkg/status


    kommando ist:
    vlc udp://@239.255.0.1:1234


    Protokoll von "cvlc -vv udp://@239.255.0.1:1234" sagt ...


    [0x8bf31a8] main input debug: Creating an input for 'udp://239.255.0.1:1234'
    [0x8bf31a8] main input debug: thread (input) created at priority 10 (input/input.c:230)
    [0x8bf31a8] main input debug: thread started
    [0x8bf31a8] main input debug: using timeshift granularity of 50 MBytes
    [0x8bf31a8] main input debug: using timeshift path '/tmp'
    [0x8bf31a8] main input debug: `udp://@239.255.0.1:1234' gives access `udp' demux `' path `@239.255.0.1:1234'
    [0x8bf31a8] main input debug: creating demux: access='udp' demux='' path='@239.255.0.1:1234'
    [0x8bf7ef8] main demux debug: looking for access_demux module: 0 candidates
    [0x8bf7ef8] main demux debug: no access_demux module matched "udp"
    [0x8bf7ef8] main demux debug: TIMER module_need() : 0,498 ms - Total 0,498 ms / 1 intvls (Avg 0,498 ms)
    [0x8bf31a8] main input debug: creating access 'udp' path='@239.255.0.1:1234'
    [0x8bf56f8] main access debug: looking for access module: 1 candidate
    [0x8bf56f8] access_udp access debug: opening server=:0 local=239.255.0.1:1234
    [0x8bf56f8] main access debug: net: opening 239.255.0.1 datagram port 1234
    [0x8bf56f8] main access debug: Multicast group join request
    [0x8bf56f8] main access debug: using access module "access_udp"
    [0x8bf56f8] main access debug: TIMER module_need() : 2,002 ms - Total 2,002 ms / 1 intvls (Avg 2,002 ms)
    [0x8bf89e8] main stream debug: Using AStream*Block
    [0x8bf89e8] main stream debug: pre buffering


    und dann passiert jarnix mehr ...


    Aber nur mal so als Frage: Multicast Streaming macht doch auch das xineliboutput-Plugin oder nicht ?

  • Sieht eigentlich alles ganz vernünftig aus. Sieht aber so aus, als ob kein IGMP Join beim VDR ankommt.


    VLC und streamdev laufen nicht auf dem selben Rechner, richtig? Das geht nämlich nicht. Das Routing auf dem Client-Rechner ist auch ok, sprich Multicast-Pakete für 239.255 werden über das LAN gesendet? Auf Client und VDR ist auch keine Firewall (LAN-seitig) aktiv, die Ärger machen könnte?


    Zitat

    Aber nur mal so als Frage: Multicast Streaming macht doch auch das xineliboutput-Plugin oder nicht ?


    Ja, habe mich damit aber noch nicht auseinandergesetzt. Interessant wäre, wie bei xineliboutput der Multicast-Client den Kanal auswählt den er sehen will.

  • Danke für die Tipps, aber offensichtlich kommt nix raus auf Netz 239.255.0.0 und der Fehler mit dem mangelnden Speicher ist auch noch da (hatte ich vorhin übersehen).


    Habe zwar sysctl -w gemacht aber komischerweise mag er nur den sysctl -w net.ipv4.igmp_max_memberships=101 Befehl und nicht mit .sys davor. Da kommt der Fehler error: "sys.net.ipv4.igmp_max_memberships" is an unknown key.


    Neustart VDR war zunächst auch erfolgreich, aber es kommt immer noch der Start-Fehler
    streamdev-server IGMP: unable to join 239.255.0.20: Kein Hauptspeicher für den Puffer verfügbar


    und noch schlimmer, er kann den "alten" Streamdev-Prozess nicht beenden...
    ERROR: streamdev server thread 3822 won't end (waited 3 seconds) - canceling it...


    Wenn ich auf einem anderen Client den Kabelhai starte, bringt er auch keine Pakete im 239.255-er Netzwerk. Aber sysctl -w schreibt doch direkt, da muss man keinen Neustart machen ...



    Tja, xineliboutput ist auch ein schnuffiger Multicast Server über UDP aber leider habe ich noch nicht herausbekommen, wie man da Kanalwahl macht.

  • Das "sys." ist ein Fehler im README.


    Die "unable to join"-Meldung musst Du nicht überbewerten - heißt letzlich nur, dass bei Kanal 19 Schluss ist solange net.ipv4.igmp_max_memberships nicht mehr zulässt.


    Das sysctl -w sollte in der Tat sofort Wirkung zeigen, überdauert aber keinen Reboot. Dazu in /etc/sysctl.conf eintragen. Ohne -w zeigt sysctl den aktuellen Wert an. Damit kannst Du die Einstellung prüfen.


    Check doch bitte noch die Netzwerk-Karten: zeigt "ifconfig" bzw. "ip link" sowohl auf dem Client als auch auf VDR die MULTICAST-Option an? Evt. musst Du auf dem Client auch noch eine passende Route definieren:
    route add 224.0.0.0 netmask 240.0.0.0 dev eth0

  • Manchmal muss man eben auch Linux neu starten und schon gehts ... vielleicht hätte aber auch schon ein networking restart gereicht.


    Geht bei Dir Kanalumschaltung ? Lt. Doku einfach eine IP weiter = 239.255.0.2 ... ?
    Geht bei mir nicht, muss man dazu noch einen Parameter in der allgemeinen streamdev-server Konfiguration setzen ?

  • Im syslog steht absolut gar nix drin, aber es geht nach wie vor der Zugriff auf die 239.255.0.1
    Da ist ja eine DVB-T Karte drin, die müsste doch innerhalb einer Frequenz auf mehrere Sender umschalten können ...


    Hübsch ist aber, dass vdr-xine weiterhin sogar mit Kanalumschaltung geht. Na gut, verwendet ja auch anderes Verfahren.

  • Zitat

    Im syslog steht absolut gar nix drin, aber es geht nach wie vor der Zugriff auf die 239.255.0.1
    Da ist ja eine DVB-T Karte drin, die müsste doch innerhalb einer Frequenz auf mehrere Sender umschalten können ...


    Hübsch ist aber, dass vdr-xine weiterhin sogar mit Kanalumschaltung geht. Na gut, verwendet ja auch anderes Verfahren.


    Zumindest solltest Du auf den Kanal umschalten können, den Du mit xine gerade anschaust. Das gar nichts im Log steht ist schon seltsam. Kommt denn zumindest alle 2 Minuten ein IGMP V2 Membership-Report von Deinem Client an? Vielleicht stimmt doch noch etwas mit dem Multicast nicht?

  • Hallo,
    nachdem ich diesen Thread entdeckt habe, habe ich mich gleich mal daran gemacht, dass ganze mit MediaPortal 1.1.0Alpha (siehe www.team-mediaportal..de) als Client zu testen.


    Dazu habe ich mir folgende m3u Playliste erstellt:



    Bei deren TV Server kompenente wird eine Art virtueller DVB Adapter verwendet, der die Sender aus dieser Playliste noch per Kanalscan finden muss. Bei diesem Kanalscan findet er scheinbar willkürlich nicht jeden Sender. Heißt: bei jedem Suchlauf kann er auf einen anderen nicht schalten.


    Ich bin mir nicht sicher, auf welcher Seite das Problem liegt.
    Der Test mit einer CVS Version vom Streamdev Server steht noch aus. Bis jetzt habe ich die Version aus E-tobis Debianpaketen genommen.

Jetzt mitmachen!

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