- Your router will not be able to ‘discover or see’ your Chromecast on your WiFi network if you have UPnP or Multicast disabled.
- Chromecast will not be able to communicate with your router if you have IGMP (Internet Group Management Protocol) disabled on your router or IGMP Proxy enabled on your router.
- Enable: Universal Plug and Play (UPnP), multicast, Internet Group Management Protocol (IGMP)
When a host wants to start receiving UDP multicast traffic, it needs to subscribe itself to a "UDP multicast group". Control of multicast groups is archived with IGMP protocol. Once a host is subscribed, all the traffic for this group is sent to it using broadcast L2 frames. This detail is important because common bridges just pass all the broadcast traffic to all the ports. So if you use Linux to bridge wireless and wired networks (usual scenario for home LANs) and you subscribe to a multicast group from one of the wired clients, the wireless will be hogged too. Luckily, starting from 2.6.34, the kernel has IGMP snooping feature for the software bridges (disabled by default in OpenWrt) which should prevent unnecessary traffic on ports that were not actually subscribing.Another important consideration is that multicasting over wireless doesn't usually work as one might expect since it uses the lowest possible bitrate (to enable all clients to "hear" it) and also employs special tricks for power-saving. Basically, this makes multicasting useless for IPTV.Thanks to IGMP snooping, igmpproxy should no longer cause wifi hogging and so you can have both igmpproxy and udpxy configured and running, accessing IPTV over wifi with udpxy when needed.
$ sudo opkg install kmod-bridge
config interface 'lan'
option ifname 'eth1'
option igmp_snooping '1'
接下来，修改 /etc/config/network ，在 br-lan 中加入 IGMP Snooping 选项
$ sudo echo "1" > /sys/devices/virtual/net/br-lan/bridge/multicast_snooping
然后，修改 multicast_snooping 的默认值改为 "1"
Done ! 接下来就能继续愉快收看节目了。
猜测这个修改不仅对 Chromecast，而且对 Apple TV AirPlay，Kindle Fire TV 应该都有效。如果上述设备在 OpenWRT 下遇到投屏时卡在欢迎页面一直无法播放的情况，可以尝试这个办法，本质上就是打开 UPnP 或 MultiCast 让 Chromecast / Apple TV / Kindle Fire Stick 能够在局域网内被发现识别，同时打开 UDP IGMP Snooping 让节目顺利播放。如果路由不使用 OpenWRT 而是使用原厂固件，请确定（1）视频内容不受 GeoIP 限制 （2）已经突破国家防火墙的网络封锁 （3）参考 Chromecast 的初始设置不兼容列表，并根据提示修改。