stremdev-server und multicast problem

  • hallo,


    ich habe das neueste streamdev-server plugin (0.5.1-git vom 16.05.2011) installiert. das streaming über http geht wie vorher (mit einer älteren verion) problemlos. nur mit dem multicast geht es nicht. genauer gesagt ist der pc nicht unter der adresse 239.255.0.X:1234 erreichbar. nur die richtige ip-adresse 192.168.10.111 geht. ich muss den pc irgentwie dazu bringen, dass er auch auf die ip-adresse 239.255.0.X:1234 hört.


    im habe es schon mit "route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0" versucht, aber das geht auch nicht. vielleicht kann mir ja jemand helfen.


    Code
    svdrphosts.conf
    ---------------
    127.0.0.1         	# always accept localhost
    #192.168.100.0/24 	# any host on the local net
    #204.152.189.113  	# a specific host
    0.0.0.0/0        	# any host on any net (USE THIS WITH CARE!)
    239.255.0.0/16   	# uncomment for IGMP multicast streaming


    Code
    streamdevhosts.conf
    -------------------
    127.0.0.1 # always accept localhost
    #192.168.100.0/24 # any host on the local net
    #204.152.189.113 # a specific host
    239.255.0.0/16 # uncomment for IGMP multicast streaming
    0.0.0.0/0 # any host on any net (DON'T DO THAT! USE AUTHENTICATION)



    das problem hat eigentlich weniger was mit streamdev zu tun, sondern wie ich den pc dazu bringe auf die benötigte ip-adresse 239.255.0.X:1234 zu hören.


    ich hab mir die finger wundgegooglet, aber nichts gefunden.


    gruss

  • ich hab mir die finger wundgegooglet, aber nichts gefunden.


    Bist Du mittlerweile weiter gekommen?
    Ich versuche mich auch gerade an multicast, doch wie Du schon geschrieben hast, sind die Infos dazu im Netz recht dürftig. :(


    Evtl. kann ja mal Jemand ein HowTo zu streamdev mit IGMP posten?

  • hallo,


    nein ich bin leider nicht weiter gekommen und habs aufgegeben. durch folgenden link kommst du zu ner anleitung, durch die ich erst inspiriert wurde, den igmp server zu testen, aber weiter als zu meinem problem vom ersten post bin ich nicht gekommen. mittlerweile hab ich meinen vdr streaming server abgebaut und mein system komplett auf den dvbviewer recording service umgestellt.


    gruss

  • ABC4711: Ist 192.168.10.111 die IP des VDR oder des Clients gewesen? Falls es die Client-IP war ist diese Konfiguration falsch:

    Code
    streamdev-server.IGMPBindIP = 192.168.10.111


    @C-3PO: README des Streamdev-Plugins zum Thema Multicast ist bekannt? Was sprechen die Logs?

  • @ schmirl,


    natürlich kenne die READDME und habe die auch mehrfach gelesen, aber vermitlich nicht verstanden...


    Das Log sagt:



    Die route habe ich angelegt. (Wobei ich mir nicht sicher bin, ob das so richtig, bzw. überhaupt notwendig ist?)


    Code
    vdr01 ~ # route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
    vdr01 ~ # route
    Kernel IP Routentabelle
    Ziel            Router          Genmask         Flags Metric Ref    Use Iface
    default         fritz.box       0.0.0.0         UG    202    0        0 eth0
    loopback        -               255.0.0.0       !     0      -        0 -
    192.168.178.0   *               255.255.255.0   U     202    0        0 eth0
    base-address.mc *               240.0.0.0       U     0      0        0 eth0
    vdr01 ~ #


    Die config sieht so aus:




    Wenn ich nun mit VLC versuche zu "udp://239.255.01:1234" zu verbinden, dann tut sich gar nichts. :(
    Vervendet wir das aktuelle streamdev aus dem git.

  • ABC4711: dann hätte es passen müssen. Hast Du noch das Log?


    @C-3PO: Ist 192.168.178.1 der Client? Der interessiert sich zumindest schon mal für Multicast. Prüfe bitte ansonsten mit "ifconfig" bzw. "ip link", ob auf der LAN-Schnittstelle des Clients die Multicast-Option angezeigt wird. Ich versuche über das Wochenende mal ein aktuelles VLC mit Multicast zu testen. Vielleicht hat sich da was geändert.

  • ABC4711: dann hätte es passen müssen. Hast Du noch das Log?

    nein, das log hab ich nicht mehr. ist ja auch schon mehrere monate her. aber ich weiss noch, dass sich der streamdev-server immer im log beschwert hat, dass der igmp server nicht gestartet werden konnte, weil er die ip 239.255.X.X nicht verwenden konnte, oder dass die ip nicht verfügbar wäre. irgendetwas in diese richtung wars glaube ich. an den genauen wortlaut kann ich mich aber nicht mehr erinnern. wenn ich auf dem vdr server nachgeschaut hatte, welche ip's und ports offen waren, dann stand die ip 239.255.0.X nie in der liste, dementsprechend war die ip auch nicht im netzwerk anpingbar.


    gruss

  • Zitat

    wenn ich auf dem vdr server nachgeschaut hatte, welche ip's und ports offen waren, dann stand die ip 239.255.0.X nie in der liste, dementsprechend war die ip auch nicht im netzwerk anpingbar.


    Das ist logisch. Zum einen kann man eine Multicast-IP nicht einfachen anpingen, zum anderen ist die IP 239.255.0.x die Ziel-IP an die der Server den Stream schickt. Auf dem Server ist diese IP nicht gebunden. Auf Linux-Clients kannst Du Dir die Mitgliedschaften in Multicast-Gruppen über netstat -g anzeigen lassen.

  • [ERLEDIGT] Fehler gefunden :)


    Der Fehler war mal wieder zwischen Monitor und Rückenlehne zu suchen. ^^


    Die Firewall war aktiv und hat geblockt.


    Allerdings ist mir noch nicht ganz klar, welchen Adressberich ich auf der FW freigeben muss? 239.255.0.0 oder 224.0.0.0 oder beide?

  • Du brauchst beide Bereiche. An 239.255 werden die Video-Pakete geschickt, 224. wird für IGMP benötigt.


    Trotzdem habe ich einen Fehler gefunden, der zu einem Deadlock im streamdev-server führt. Das Problem tritt dann auf, wenn durch Multicast der Live-Kanal des Servers umgeschaltet oder auf eine andere DVB-Karte verschoben wird. Aufgrund des aktuellen Sommerausbruchs wird der Bugfix aber noch ein Weilchen auf sich warten lassen :sonne

  • [...] Aufgrund des aktuellen Sommerausbruchs wird der Bugfix aber noch ein Weilchen auf sich warten lassen


    Lass Dir Zeit, das hatte bisher auch keine Eile. :)
    Aber so wie es aussieht, scheint Multicast nicht sehr verbreitet zu sein, denn sonst hätte doch sicherlich diesen Bug schon Jemand bemerkt?

  • Kein Problem. In server/livestreamer.c ab Zeile 330 einfach das #if/#endif entsprechend verschieben:

    Code
    #if 0
                    pids[npids++] = 0x10;  // pid 0x10, tid 0x40: NIT 
                    pids[npids++] = 0x11;  // pid 0x11, tid 0x42: SDT 
                    pids[npids++] = 0x14;  // pid 0x14, tid 0x70: TDT 
    #endif


    Ist sicher nicht verkehrt, wenn auch die TDT übertragen wird. Die NIT dürfte hingegen wenig hilfreich sein. Wenn's passt, check ich's ein.

  • So?


  • [...] Wenn's passt, check ich's ein.


    Habe es gerade getestet. Funktioniert einwandfrei. :tup


    Nun werden die Sendernamen beim Scannen automatisch eingetragen. ;)


    [Blockierte Grafik: http://img52.imageshack.us/img52/3349/multicast.th.png]


    Alledings habe ich noch zwei kleine Probleme:


    1.] Es wird kein EPG übertragen.


    2.] Ich kann leider nur 20 Sender streamen. :(



    Das,


    hilft leider nicht. ;)

  • Zitat

    1.] Es wird kein EPG übertragen.


    PID 0x12 wird stets übermittelt - siehe Quellcode-Schnippsel in dem Du die SDT aktiviert hattest. Würde mich schon sehr überraschen, wenn das EPG tatsächlich fehlen würde. Ggf. den empfangenen Stream mit z.B. VLC abspeichern und ein DVB-Analyse-Programm drüber laufen lassen. Zur Not tut's auch ein Netzwerk-Sniffer. EPG-Daten sollten als Klartext deutlich auffallen.


    Zitat

    2.] Ich kann leider nur 20 Sender streamen.


    Im Log sind keine "Received V2 membership report" für Kanäle ab 20 zu sehen, lediglich "leave group"-Meldungen. Folglich konnte streamdev tatsächlich nur den Multicast-Gruppen bis Kanal 19 beitreten. Daher gehe ich davon aus, dass Du den Befehl zum Erhöhen dieses Parameters erst nach dem VDR-Start ausgeführt hast. Bitte vor dem VDR-Start ausführen.


    Im Log müsstest Du folgende Meldungen sehen:

    Zitat

    streamdev-server IGMP: unable to join ...
    consider increasing sys.net.ipv4.igmp_max_memberships

Jetzt mitmachen!

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