让手机和电脑播放IPTV电视节目

前言

解决家里弱电箱到客厅电视只有一条线,在原有情况下无法做到 IPTV 和互联网在同一线路上通过,和其它设备观看IPTV问题,不用每次看IPTV须打开电视,可以多设备同时在线。 此教程为抓取自家宽带的IPTV为教程,非网络公开的各运营商IPTV源地址,(如果是公开的也就没有必要出这篇教程了,直接下载下来就能看了)。同时在线观看设备数量取决于你的IPTV带宽。可以在你的局域网内使用无线网络观看。也可以在外面看IPTV,需要有公网IP支持,或者内网穿透。

条件&工具

  • 网络    宽带有IPTV业务,即有机顶盒。猫可以改桥接,机顶盒没有复杂的DHCP Option、AB面认证。
  • 设备    OpenWrt路由器(需要有UDPXY和组播代理这两个插件),或者爱快路由系统,一台普通无线路由。
  • 工具    Wireshark抓包软件、notepad++。

光猫设置

打开猫,通过管员密码进入设置,参照以下设置,取消掉原来的IPTV绑定端口,把网络和IPTV通过VLAN绑定到一个接口上,(即实现了单线利用)。网上很多教程说要两个网管交换机进行单线复用,当时对这个原理完全没有概念,所以没有立即冲动买交换机。

爱快系统

首先设置接口,添加两个外网接口,一个用于网络,一个用于IPTV。

网络接口设置。
VLAN_ID对应光猫网络设置值1。

IPTV接口设置。
VLAN_ID对应光猫网络设置值2。MAC要填写机顶盒的MAC地址。如果正确等一会将会看到IPTV的IP。

设置DHCP。
设置机顶盒为静态DHCP分配。终端MAC设置为机顶盒MAC地址。

如果以后还需要使用机顶盒就设置IGMP。上联选择你的IPTV接口,下联就选择LAN。

设置端口分流。

然后就是局域网内其它设备观看IPTV设置UDPXY转发。端口设置未被占用的即可。UDPXY转发就是把组播数据UDP转换为HTTP单播。

打开路由器IP:10000/status,即可看到UDPXY状态。

抓包

经过以上设置网络已经成功配置好,接下来就开始抓包。看了网上的教程有的需要带有镜像的交换机,有的需要买抓包硬件,或者自制……还有一个就是很多教程提到的OpenWrt有交换机这个插件,但是找了很久也没有看到有这个功能的固件,网上关于这个交换机插件的知识特别少,一个也没搞,偶然发现爱快有这功能抱着试试的态度成功了,为我省了一大笔银子。
找到爱快的抓包功能 。抓包前先关闭机顶盒。抓包接口选择IPTV接口,抓包数据选择最大80000。然后选择”开始抓包“,然后再打开机顶盒,快速多看几个不同的直播台。然后选择停止抓包,然后下载抓包文件。

然后使用Wireshark分析抓包结果,提取直播源。在过滤器栏输入输入以下命令。

				
					http.request.uri contains "frameset_builder.jsp"

				
			

右键第一个请求,追踪流 – HTTP 流。

再弹出的新窗口中查找。

				
					igmp://

				
			

单击链接,主窗口就会自动定位到该请求。

单击展开该请求的完整内容,查看里面的内容是不是含有 igmp:// 之类的重要数据。

右键 Line-based text data 导出分组字节流,随便取个名字保存到你能找到的地方。

用 notepad++ 打开,查看是否显示正常,前几行都是一片空白,往后滑一点就能看到了。

数据整理

开始整理之前,建议保存好原始文件。查找目标。

				
					.*ChannelName="(.*)",UserChannelID="(.*)",ChannelURL="igmp://(.*)",TimeShift=.*

				
			

替换为以下内容,这里借用的是别人的图。前面写你的路由器地址加上udpxy监听的端口。

				
					#EXTINF:-1, \1\r\nhttp://192.168.10.1:10000/udp/\3
				
			

将整理后的数据文档首行写入以下内容,复制到新文档,并修改扩展名为m3u。

				
					#EXTM3U
				
			

然后使用ptoplayer等播器播放该m3u文件即可。也可以把该文件放到手机上使用IPTV播放软件播放。或者把他放在服务器里让程序读取该文件地址播放。

OpenWrt

首先设置网络接口。
在传输协议里选择“PPPOE”,也就是拔号上网。因为OpenWrt默认把eht1为网络接口,所以要添加的物理接口为eth1,因为VLAN的存在,在光猫里设置过网络绑定的vlanID值为1,所以要在最后面的自定义接口里自定义接口,名称为“eth1.1”,并使用该接口。

然后是设置IPTV接口。传输协议选择DHCP。

光猫里设置过网络绑定的VLANID值为2,所以要在最后面的自定义接口里自定义接口,名称为“eth1.2”,并使用该接口。

网络和IPTV接口状态。

然后设置UDPXY。
端口设置为一个未被使用的即可。源IP/接口为设置过的IPTV自定义接口“eth1.2”。

然后在网络-防火墙-通信规则里添加一条规则。

最后输入路由器IP:10000/status,即可看到UDPXY状态。

然后使用保存好的M3U文件播放即可。

外网观看

需要有公网IP或者内网穿透。
只需要把路由器的IP换成你的域名即可。

0 0 投票数
文章评分
订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论!x
ҳݿ 82 βѯʱ 0.911 룬ʹ 38.70MB ڴ