Openwrt与IPTV之二----udpxy
udpxy的作用是将组播的数据流变成TCP协议的单播流,避免了在数据链路层广播,在无线网络中尤为需要。同时电视也不支持udp格式的视频流。
udpxy在官方的软件源中,直接安装即可
udpxy没有独立的配置文件,修改参数直接在启动脚本中完成
修改/etc/init.d/udpxy
OPTIONS="-a br-laniptv -p 8888 B 1Mb -R 3 -S 3" start() { service_start /usr/bin/udpxy $OPTIONS } //-a 监听设备,这里是我再vlan划分的另外两个物理端口,并配成桥连 //-p 监听端口,随便选一个没用过的就好 //后三个参考官方说明,默认也可以
防火墙
//允许IGMP协议 config rule option target 'ACCEPT' option src 'wan' option name 'Allow-IGMP' option proto 'IGMP'
上面的规则和上一篇配置igmpproxy时是一样的,如果两个软件都用,配置一次就可以
//允许udp协议 config rule option target 'ACCEPT' option src 'wan' option proto 'udp' option name 'Allow-UDP-udpxy' option dest_ip '224.0.0.0/4'
上面这条规则和igmpproxy的很像,但少了一些配置,不知为何,两组规则是不能融合的。不过我这里把两个端口放到不同的防火墙域,所以配两条规则也是必须的。
开启自启动
/etc/init.d/udpxy enable
启动
/etc/init.d/udpxy start
这时,访问路由ip:8888/status,能进入一个web页面
此时,假设组播地址是225.1.1.1:1111,路由的ip是192.168.136.1
那么通过udpxy转换后的新地址是http://192.168.136.1:8888/udp/225.1.1.1.1:1111
这个地址同样可以用VLC测试。