So, jetzt noch mal vom PC eine etwas längere Antwort
Das macht alles das Betriebssystem. Socketseitig musst du nur eine andere Socketoption mit anderem struct nutzen und die Source Adresse mit angeben.
Deshalb ist das ffmpeg Verhalten ja auch so ungewöhnlich. Das rtp Modul scheint den Join schon richtig zu machen, stellt dann aber nach ein paar ms zurück auf das klassische Multicast ohne Source-Option. Von den Logs ausgehend sieht es irgendwie so aus, als würde der intern noch mal eine SDP bauen - dort fehlt die Source Option - und dann auf diese umstellen
Was die anderen Clients angeht (und auch das VLC via WLAN) müsste man vielleicht auch einfach mal mit tcpdump/Wireshark schauen, was da igmp-mäßig abläuft. Wenn nach 2:10min Schluss ist, kommen entweder die IGMP Queries beim Client nicht an, er beantwortet sie nicht oder die Antworten kommen beim Router nicht an. Aber wie gesagt, diese zu beantworten ist alles Sache des Betriebssystems. Nur wenn die Software dem Betriebssystem sagt „IP_ADD_MEMBERSHIP“, dann nimmt es die Source Option raus - sofern sie vorher vorhanden war - und dann funktionieren die neuen Streams meist nicht mehr (Ausnahmen gibts allerdings, wenn der DSL Router, MSAN und der BNG kein Problem damit haben auch IGMPv3 Requests ohne SSM zu bearbeiten).