本帖最后由 鲲翔 于 2017-12-30 00:00 编辑
IPTV融合进普通网络一般步骤

梅林和Padavan的设置看这里:
https://www.right.com.cn/forum/thread-250969-2-1.html

本文为这段时间我在论坛上的一些讨论的总结,不一定对,但大概流程是清楚了,看完后希望对你有帮助。文中所用到的软件有: Wireshark(2.4),winscp,putty,potplayer,mxplayer(android),Notepad++。 路由器(lede)所需的软件有: - opkg update
- opkg install kmod-macvlan kmod-8021q kmod-bridge igmpproxy udpxy tcpdump luci-app-udpxy
复制代码
本文大体分两部分 一.直播地址获取 二.直播环境搭建 下面开始第一部分,直播源地址的获取。一般我们是通过抓包,不过抓包之前建议先搜索一下,或许有先行的前辈帮你抓好了,有现成的可以直接看第二部站。如果没有,我们就得自己抓包了。只要有lede路由器就可以抓包,在路由器上安装tcpdump可以让路由器成为一个抓包神器。想抓到IPTV的包,需要让IPTV的包能通过路由器。最简单的方法就是让路由的WAN口和接IPTV的lan口桥接,具体的做法为接接IPTV的lan口设为不关联,不关联就是桥接,如图: 这时开启你的机顶盒,应该可以正常的直播点播。好,先关掉机顶盒,然后用putty连上路由器,输入以下命令: tcpdump -i any -w /tmp/xxx.cap 这条命令的意思是说,抓所有的包并存到/tmp文件夹下,以XXX(替换成你喜欢的)命名。好了,机顶盒开机,等出现选择频道界面时在putty下按Ctrl+C。用winscp登陆到路由器,在/tmp文件夹下找到刚才的抓包文件。这时要请出另一个软件wireshark来了,用wireshark打开抓包文件,按Ctrl+F,选择字串符,分组字节流。输入get channellist回车。协议那里选http过滤一下,一般第一个post get channellist的应答就是了。 这时在应答这一条的line-based text data里点右键,选择显洁净分组字节。显示为那里选utf8 这是一个样本。 取得频道列表后就要整理了,这时要请出牛B工具notepad++了,它支持正规则表达式。正规则表达式是wolong_gl教我入门的,谢谢了。 如果你的频道列表是和这个一样的,可以试试这个表达式: 查找内容那里为: <script>.+?ChannelName=\"(.+?)\" ,ChannelURL=\".+?://(.+?)\".+?</script> 替换为: #EXTINF:-1, \1\n rtp://\2\n 勾选匹配新行,全部替换吧。 好了,到此抓直播地址部分就结束了。如果你土豪或者路由器里支持端口镜像,抓包可以更容易些,可以不用tcpdump,可以直接用wireshark抓包。拓朴如下:
第二部分,直播环境搭建。 其实一开始已将直播所需要的软件装好了,现在只要配置好它就行了。这时我们需要将一开始的vlan设置还原回原来的,不要将IPTV和WAN桥接在一起了。这时需要创建一个虚拟WAN口用来IPTV网络的拔号,然后通过MWAN指定IPTV走这个端口出去。创建虚拟接口最好用syncdial,自动创建,如果通过手动创建的话,需要注意在etc/config/network里加上 - config device 'macvlandev_macvlan1'
- optionname 'macvlan1'
- optionifname 'eth0.2' \调整成自己的wan口
- optiontype 'macvlan'
- config interface 'vwan1'
- optionproto 'pppoe'
- optionmetric '41'
- optionipv6 'auto'
- optionifname 'macvlan1'
- optionbridge 'false'
- optionusername **********999@itv'
- optionpassword '******'
复制代码
这时建好的虚拟wan口应该拔通取得IP了,下面我们要配置好igmpproxy,让连接在路由器后面的机顶盒能够直播和点播,打开/etc/config/igmpproxy。里面的配置示例: - config igmpproxy
- option quickleave 1
- config phyint
- option network vwan1 \这个为虚拟wan口,取得IPTV网络地址的接口,在这里指定组播从这个接口出去
- option direction upstream
- list altnet 115.153.239.0/24 \这个为组播服务器地址,不是组播地址,用0.0.0.0/0也行
- config phyint
- option network lan
- option direction downstream
复制代码然后在/etc/config/network的lan下面增加
接下来配置防火墙/etc/config/firewall
在后面添加
- config rule
- option src wan
- option proto igmp
- option target ACCEPT
- config rule
- option src wan
- option proto udp
- option dest lan
- option dest_ip 224.0.0.0/4
- option target ACCEPT
- config rule
- option src wan
- option proto udp
- option dest_ip 224.0.0.0/4
- option target ACCEPT
复制代码
保存好后重启igmpproxy,这时用有线连接路由器。用potplayer打开组播地址应该能正常收看电视了,机顶盒应该也能正常收看了。 好了,下面配置udpxy为wifi收看电视节目作准备,这里最主要的是要指定Source IP,因为IPTV的地址经常变,所以这里指定端口就行了。这里指定了,IPTV的流量都是从IPTV那个接口出去的。
启动udpxy后要将地址转换一下,比如原来的组播地址为:rtp://239.252.219.46:5140
下面再来设置一下xupnpd,这个主要给手机或者盒子提供播放列表。有这个后不要每次有新设置都得整一次列表,不过电视盒子的话还是建议用hdp的自定义列表,那个体验更好。xupnpd安装好后默认一个端口号:4044,也就是你的路由器地址:4044。这个就更新什么设置了,直接将整理好的播放列表传上去就行了。
保存后在VLC的“本地网络”里就能看到了,如果出现乱码请将列表设为UFT-8的编码。还一个播放器挺好用,splayer。这个换台不用退出,可以直接换。
发帖注意事项
请勿胡乱发帖:https://www.right.com.cn/forum/thread-8307840-1-1.html
账户手机验证:https://www.right.com.cn/forum/home.php?mod=spacecp&ac=plugin&id=jzsjiale_sms:home
|