https://wp./作者 gxnas 前言依赖
环境
无需电信 IPTV 机顶盒,也可在任何设备上通过 http 链接直接播放直播节目。下图分别为 PotPlayer(PC) 和 超级直播(Android) 播放节目效果图。 iGMP 与 RTSP在 IPTV 中常见的两种用于播放直播节目的协议分别为 IGMP 和 RTSP,他们之间的差异如下。
IGMP网路群组管理协议(英语:Internet Group Management Protocol,缩写:IGMP)是用于管理网路协议多播组成员的一种通信协议,有时候我也会将其称为组播。 在电信这边,组播地址通常很少变化,但是很重要的是它只能看直播不能看回放。又因为它的地址是内网地址,所以你必须要获取到电信的内网IP才能正常播放。我比较倾向于使用组播地址,因为电视节目回放有啥可看的,一般都是爱奇艺什么的了,而且最重要的是它的地址很少变化,这样就给不会倒腾的家人减少了很多麻烦。 原理上组播和广播(给网络里的所有人都发送一个消息)有点相似,但是组播会划分一个更小的范围,并且这个范围里面设备的名单会同时由客户端和主机端进行维护,路由器会根据不同的组别来转发不同的数据。 下面假装这个网络里面,有 3组 人正在分别在看 3个 节目。 正在收看 CCTV-251 的朋友说,这太假了。我想看点正能量的、让人血脉喷张的。然后请求换到 正在播放 CCTV-1 的 路由器随后听到了这位朋友的呼唤,然后就将它放进了 CCTV-1 的组里。 通过上面的例子你大致能了解到 IGMP 协议的工作原理,可以简单的总结为 IGMP 就是 RTSP实时流协议(Real Time Streaming Protocol,RTSP)是一种网络应用协议,专为娱乐和通信系统的使用,以控制流媒体服务器。该协议用于创建和控制终端之间的媒体会话。媒体服务器的客户端发布VCR命令,例如播放,录制和暂停,以便于实时控制从服务器到客户端(视频点播)或从客户端到服务器(语音录音)的媒体流,有时候我也会将其称为时移。 原理上 RTSP 和常见的 HTTP 协议比较相似,也就是 你在观看节目的时候,可以随意的后退暂停,也可以自己想看什么就看什么,不用加入别人的组,整个资源都被你一个人享用。就和你平时看爱奇艺,B站什么的没区别。 正如上面的介绍一样,RTSP 的主要特点就是可以时移,也就是可以拖动进度条。而且大部分地区的 RTSP 地址都是公网 IP,甚至还可以在获取到地址后,不需要任何授权都可以直接正常播放。 所以网络上流传的 IPTV 直播源基本都是 RTSP 地址。不过四川电信这边 RTSP 有鉴权,必须要以电信的内网 IP 访问才行。 同时又因为有部分套餐的 IPTV 是没有回放权限的,所以电信应该还需要验证是谁在播放,这就让观看它成为了比较麻烦的事情(不同地区情况不同,这里只针对我所在的地区)。 目标通过了我上面对 IGMP 和 RTSP 协议的介绍,相信你对他俩都有了一定的了解。接下来我将为你详细介绍本次教程的内容。
你可以通过点击右侧边栏,来快速跳跃到你需要的章节或查阅你当前的浏览进度。 硬件本章节会介绍你所需要的硬件设备,在抓包和使用融合网络时不可避免的会使用到,生活中平时少见的设备。 路由器IPTV与互联网融合,的主要设备也就是路由器了。一款合适的路由器,可以和电脑一起直接走通整个教程。对于本教程而言,一个能够刷 如果你目前没有具有此功能的路由器,我推荐你购买 新三 它还有其他的名字 新路由3、Newifi D2、Newifi 3、Newifi 3 D2。也都是同一款,得益于所谓的矿难,这款路由器目前淘宝、拼多多和转转之类的,100元以内都可以拿下,同时购买的时候推荐你加钱让卖家刷好
抓包工具通过抓包获取 IPTV 的组播地址也是必不可少的一步。如果你的路由器没有 动手能力比较强的朋友,也可以参考恩山无线论坛的这个帖子小白的IPTV折腾教程(1)—0元DIY抓包神器,利用两根网线和4个水晶头就可以做出一个具有同样功能的抓包工具。 不过我还是比较推荐刷一个具有 软件下面列出了本次教程中所有需要的软件,我使用软件的版本,以及和下载链接。
下面介绍了每个软件的用途。
抓包首先将来自光猫的互联网和往常一样连接到路由器的 WAN 口,将 ITV 口连接到路由器的 LAN 4 口,将 IPTV 盒子连接到路由器的 LAN 3 口,最后将 LAN 1 口连接至电脑。 随后配置路由器的流量镜像功能,将接有 IPTV 盒子的 LAN 3 口设置为 数据包镜像源端口,将接有电脑的 LAN 1 口设置为 数据包镜像监听端口。其他 VLAN 设置无需改动。 保存并应用设置后,即可在电脑上启动 Wireshark 并监听以太网接口,随后启动 IPTV 盒子。 启动 IPTV 盒子后,应不停的有数据显示在窗口中。然后使用 IPTV 盒子遥控器,进入直播随便播放一个节目,等节目可以正常播放的时候,即可在 Wireshark 中停止捕获。同时也可关闭 IPTV 盒子,接下来就是分析数据了。
分析抓包数据因为不同地区的数据样式差异较大,我这里是四川电信,其他地区可供参考 获取地址在过滤器栏输入
右键第一个请求,追踪流 - HTTP 流 再弹出的新窗口中查找
如果你找到了类似下图 单击连接,主窗口就会自动定位到该请求。 单击展开该请求的完整内容,查看里面的内容是不是含有 右键 Line-based text data 导出分组字节流,随便取个名字保存到你能找到的地方。 用 notepad++ 打开,查看是否显示正常(前几行都是回车,会一片空白往后滑一点)。 无法获取到地址如果你在窗口中一个数据都未获取到,那么请检查数据镜像设置或网线位置是否有错。 如果你是四川省,请仔细检查是不是,在过滤的时候复制错了或漏了内容。 如果你非四川省,可以在过滤器中输入
进行检索,一条一条的看,里面总会有 格式化数据开始格式化之前,建议保存好原始文件。 替换完毕后可以将名字带有 PIP 的删除,这是用于机顶盒画中画功能的,说白了就是降低了分辨率的,我们就留下正常的和高清的就行了。 M3U8此格式文件可以在 PC 中直接使用 VLC media player 和 PotPlayer 打开并播放 查找目标
替换为
将文档中被格式化了的数据,复制到新文档,并在文档首行写入
处理完毕后效果如图,最后将文件另存为 .m3u8 即可。 超级直播此文件可以在 Android 端的超级直播使用,电脑打开 在软件里面按返回时提示的网址,可以将自定义源上传至该软件。 查找目标
替换为
再次查找目标,删除空白行
替换为空白 全选改文本所有内容后复制,在顶部 编码 - 编码字符集 - 中文 - GB2312,确认切换到该字符集。然后删除文本所有内容,并粘贴。最后将文件保存为 txt 即可。
处理完毕后效果如图 获取 IPTV 内网地址四川电信是 DHCP 获取,我在网上看很多地方都是 PPPOE 所以用户名和密码你们就需要自己翻翻 IPTV 的设置拉~ 这边也会使用到抓包的数据,应该就是前几个了,找到 如果你没有找到 DHCP 的数据包,可以通过 IPTV 盒子底部的贴纸查看。我这款盒子,最后一个就是 接下来就开始路由器的设置了。 首先进入路由器设置 - 网络 - 交换机,将之前用于抓包的 数据包镜像 功能关掉。随后将插有 ITV 口的 LAN 4 在 VLAN 1 中设置为 进入路由器设置 - 网络 - 接口 - 添加新接口。命名为 然后设置端口的 请求 DHCP 时发送的主机名 对应的就是之前获取的 还有不要勾选 使用内置的 IPv6 管理,使用网关跃点为 20 。 保存并应用设置后,再进入你的 WAN 接口设置,将它的 网络跃点设置为 10,否则你会无法正常使用互联网。 进行到这里,你的 IPTV 接口应该就可以正常的获取到 所以我强烈建议,还是通过抓包来分析 IPTV 盒子获得内网 IP 的全过程,因为不管你是 PPPOE 还是 DHCP 它都可以分析出来。 配置 igmpproxy 和 udpxy使用 SSH 连接到路由器修改配置文件时需要使用 SSH 连接到路由器进行修改,进入路由器设置 - 系统 - 管理权,在接口 lan 下设置端口为 22,同时打开 密码验证和允许 root 用户凭密码登录。 下载 Xshell https://www./zh/free-for-home-school/ ,官网提供了免费的供家庭和学校使用的版本,足够本次教程所用。 新建连接,名称随意,主机填上路由器的 IP。点击左侧连接中的用户身份验证,将方法设置为 Password 用户名为 root 密码则为登录 Web 端后台时的密码,我提供的固件默认是 安装 igmpproxy 和 udpxy
我建议在安装之前,在 Web 端后台的系统 - 备份/升级 中备份当前配置文件。因为我尝试了多个固件,在安装了 udpxy 后 Web 端就会无法正常使用,有很多报错。只有恢复到出厂设置才恢复正常。最后找到了一个自带 udpxy 的固件才解决我的问题。 使用 Xshell 连接到路由器后执行以下命令。
查看命令返回的结果或查看系统 - 软件包中的已安装软件包中是否存在 配置 igmpproxy关于 igmpproxy 它主要是将所有来自 lan 的 IGMP 数据都传到 IPTV 接口去,为了防止组播的 udp 数据在 lan 里面乱串,影响网络效率。但是我这里在 lan 里面是无法播放 执行以下命令,一定要复制全一起粘贴进去然后再回车执行。
配置 udpxy在路由器 Web 端设置 - 服务 - udpxy 中,勾选启动、Respawn、状态。将端口设置为 保存并应用后,打开 http://路由器IP:8888/status 查看 udpxy 运行是否正常。当你在播放视频的时候,这个页面也会显示正在播放客户端的 IP 与它的实时流量。 然后你就可以在 PotPlayer 和 VLC media player 播放之前处理好的连接了,可以直接打开 M3U8 播放列表,也可以播放一个单独的地址。 例如你获取的地址为 那么使用 udpxy 转换后的地址为 如果你仍然无法播放,请将下面的防火墙规则添加进 如果你会使用 vim 那么直接在 Xshell 里面修改即可,如果你不会可以在 Xshell 窗口中点击 新建文本传输(Ctrl+Alt+F),将该文本下载到本地使用 notepad++ 进行修改,再上传上去。请注意你的防火墙配置可能已经存在,请你仔细的排查每一个设置项。
如何在外播放家中 IPTV 源首先需要公网 IP,你可以在 在路由器 Web 端设置 - 网络 - 接口中,查看 WAN 获得的 IP 是否与你在 https:/// 看到的 IP 一致。如果不一致的话,可以向电信人工客服反映「我需要公网 IP」即可。 在路由器 Web 端设置 - 网络 - 防火墙 - 端口转发 中,添加协议为 tcp,外部区域为 wan,外部端口为 8888,内部 IP 地址为 192.168.10.1,内部端口为 8888 的规则即可。 那么你在外要播放的话,只需要把路由器的 IP 地址换为你的公网 IP 即可。 例如你的本地播放地址为 那么当你的公网 IP 为 你的互联网播放地址则为 因为公网 IP 都在变,你可以使用 DDNS 也就是 动态 DNS 使用域名来防火,你可以使用路由器内自带的服务商。如果你和我一样将域名放置于 DNSPod 管理,也可以使用我制作的 DdnsWithDnspod 使用一个子域名来专供 IPTV 的播放。 结语首先非常感谢各位前辈,我也是通过阅读现有的教程总结出来的。本文用了接近 5000 字,详细的介绍了有关 IPTV 与互联网的融合,希望能够对需要的朋友有帮助。因为本人能力有限,文中难免有一些问题也希望有发现的朋友能够及时的指出,我将感激不尽。 参考恩山无线论坛@footlog - K2P/K2 padavan双线接入,宽带+IPTV,udpxy+xupnpd详细设置 恩山无线论坛@lcsuper - 小白的IPTV折腾教程(3)—双网融合、IPTV共享 恩山无线论坛@kangtao022 - 最新四川南充电信IPTV组播地址,及整理出地址列表的方法! 恩山无线论坛@橙子_MAX - 【附固件】全网首发,新三OpenWRT路由器IPTV内网融合视频教程 橙子的个人博客 - IPTV内网融合,实现任意设备观看IPTV 恩山无线论坛@angelkyo - 四川电信DHCP抓包能获取到IP,但是抓不到option60信息 恩山无线论坛@wengmingao - 简单的的IPTV 0成本抓包! 恩山无线论坛@莫问归期 - 在openwrt里安装udpxy后主题界面就会乱 原文地址:https:///23.html =========【以下的文章为系统自动为您推荐】========= |
|