找回密码
 加入我们
搜索
      
查看: 2334|回复: 27

[网络] 广东电信 IPTV 组播转单播极限测试

[复制链接]
发表于 2024-12-27 20:28 | 显示全部楼层 |阅读模式
本帖最后由 foru17 于 2024-12-28 14:13 编辑

这两天给家里弄好了 IPTV 的组播转单播,心血来潮,想看看极限能跑多少路 IPTV 直播

有关这次折腾 IPTV 的记录和讨论,我也发到了推特和 V2EX 上。


这篇帖子不是教程,由于全国各地不同运营商对于 IPTV 有不同的网络策略,还是建议各位自行以「IPTV + OpenWrt + 组播」等关键字搜索符合当地运营商的教程。

由于这次测试「娱乐性质大于技术研究」,加上本人并不是网络相关专业,并且本人家庭设备诸多限制,注定有诸多不严谨的地方,这篇文章只是记录下下结果,不探讨相关运营商、网络、组网等技术细节。

简单来说,图一乐就好。

组播转单播

  • IPTV 原始信号是以组播(Multicast)方式传输的
  • 通过 udpxy 将组播流转换成 HTTP 单播流(Unicast)
  • 这样转换后,内网中的设备就可以通过普通的 HTTP 协议访问这些视频流

这种转换的主要优点是:
  • 让不支持组播的设备(如手机、平板、智能电视等)也能观看 IPTV
  • 突破了原本 IPTV 信号只能在特定接口或设备上观看的限制
  • 实现了全屋任意设备都能收看 IPTV 的效果

如果家里还有人要看电视,还是推荐可以搞个这个方案,在 AppleTV 、手机、平台上就能直接看直播了,而且没有机顶盒那么多广告。

有点可惜现在才弄这套方案,前段时间奥运会期间,和老婆在家看比赛直播还是挺多的。

参考资料
  • 东莞电信 1000M 下/50M 上(有公网 IPv4/IPv6)
  • 光猫 2.5G 网口 1 桥接,软路由拨号
  • 光猫 iTV 口 桥接: 封装类型 PPPoE 网线连软路由, OpenWrt 配置网口 UDPXY 转发组播(后改为 msd_lite)

🔧 硬件配置
  • 光猫: 中兴 7015tv3 (2.5G WAN + 1G ITV)
  • 软路由: N5105 4 口 2.5G
  • MacBook Pro: M2 Max/96GB + 2.5G 网卡
  • 台式机 PC: i7-8700K/1080 + 万兆网卡
  • Mac Mini: M2 Mini/16GB + 2.5G 网卡

所有设备在内网并没有网络瓶颈。测试用的电脑均为 2.5G 内网。除了上述设备,也使用到了 AppleTV、手机等设备进行测试。

📡 转发组播

我也是昨天看到 /t/102603 这个帖子下的留言,发现可以通过「电脑插光猫 ITV 口直接播放」来验证是否能进行组播转发。
经过测试,我家东莞电信、深圳联通两地的 IPTV ,都可以满足。

我之前被其他帖子误导了,以为要鉴权抓包太麻烦就没搞了。没想到居然这么简单(刚好我的网络条件满足)。

🎮 测试播放器
GridPlayer,基于 VLC 开发的多路播放器,支持硬解。


用 IINA 也试过,最多只能播放 15 个且很卡顿,后来搜到 GridPlayer 发现可以满足需求。
广电电信的组播除了表情,也提供 1080P 的直播源,还有少数 4K,我订阅的电视源使用的都是 HD 1080P 25帧的资源,码率 7Mbps - 10Mbps 波动,大多时候是 8Mbps。

某些 4K 直播源码率码率则在 30Mbps 左右,但是数量较少,这次我过滤留下了 145 个电视台,144 个是 1080P 25帧。

❗ 重要提醒
一开始我使用 UDPXY 作为直播流代理。由于一开始配置的时候填写了最大客户端50的限制,后面测试的时候发现最大播放数量被限制在 55 路,误导我一直以为 IPTV 的最大播放数量被限制了。

但是使用 UDPXY 这一步测试结果依旧保留,仅供参考。

📊 UDPXY 测试结果
下面以 UDPXY 转发测试过程的一些截图:
Mac 最多只能播放 25 路。

Mac 那边继续直播 25路,PC 额外播放 30 路,CPU 压力很大。

OpenWrt 监测 ITV 口带宽平均下来 500Mbps。

V 站有网友评论说 UDPXY CPU 占用率可能导致瓶颈,一开始我的确忽略了这个因素,于是重新又测试了下。

当 55 个通道同时播放时,CPU使用率在 50% 到 70% 之间波动,每个 UDPXY 进程占用 1%到2% 的CPU。但是可以推测,如果继续使用 UDPXY 进行转发,播放到 100 路的时候,CPU 占有率的确有可能达到 100%。

📺 UDPXY 占用网络带宽
总路数
PC 播放路数
Mac 播放路数
IPTV 总带宽占用
家宽测速结果
IPTV状态
30300300Mbps1300Mbps正常播放
503020450-460Mbps1300Mbps正常播放
553025490-500Mbps1300Mbps无法新增直播流,新增会导致原有直播随机断开一路

  • Mac 跑到 25 路就到顶了(CPU 高负载+风扇难得跑了起来),系统不卡顿,但是播放器卡顿。
  • PC 能撑到 30 路(Mac 那边 25 路还在运行),可添加无限源但超过会卡顿,已达 CPU 和显卡瓶颈,系统卡顿,播放器可能崩溃。
  • 每路都是不同的电视台源,上面 55 路同时播放流畅不卡顿。跑满时,家庭局域网其他设备(AppleTV/手机) IPTV 客户端无法再播放,OpenWrt 监测 iTV 网口带宽平均速率 500Mbps。

⚡ msd_lite 测试结果
27 号晚上,看到有人提到了 msd_lite,相比 UDPXY,msd_lite CPU 和内存占用更低 ,于是我又重新用 msd_lite 测试了下。

也是在这个时候,我才发现 UDPXY 配置里面有个最大客户端数 50 的限制,于是干脆重新测试,也因此得出了新的数据和结论,由于上面 UDPXY 测试时就已经达到了 1000M ,msd_lite 直接跳过,直接以 1000Mbps 向上的压力测试。

同时为了突破网口的物理限制,我将光猫上的 iTV 口绑定到了 2.5G 口上,原本的网络则改到了 1G 网口上。


这一轮测试,出动了 M2 Mac MacBook / PC / M2 Mac Mini 共三台设备测试,同时客厅的 AppleTV 也在 4 路同屏一直播放(三台电脑同时播放时,硬件性能瓶颈太大都会卡顿,AppleTV 4 路直播不会因为硬件问题瓶颈,作为一个标定组)。
M2 Max MacBook 一直播放 62 路不停止,画面都能出来,但是播放不流畅,CPU 占用率 60-80% 之间波动。

旁边的 M2 Mini 则固定播放 25 路。

📺 msd_lite 占用网络带宽

总路数
PC 播放路数
Mac 播放路数
Mini 播放路数
AppleTV 播放路数
IPTV 总带宽占用
家宽测速结果
IPTV状态
91062254900-1000Mbps1000Mbps除了电脑卡顿,其他端流畅播放,AppleTV 播放流畅
10842622541200-1300Mbps10~100Mbps除了电脑端卡顿,其余端流畅播放,开始影响网速
14756622541400~1500Mbps10~~100 Mbps播放卡顿感明显,少数源出现马赛克,ATV 正常播放但是加载偶尔出现进度条,家宽网速限速到 100M 以内
200721002541500+Mbps1000 Mbps❓极限重复 200 路测试,虽说 IPTV 达到 1.2G 之后大概率限速,但是实测依旧偶尔能够跑满 1000M 网络宽带

PC 在播放 56 路时,CPU 压力依旧很大。

在 147 路播放时,OpenWrt 监测 ITV 口带宽平均速率达到了 1.42 Gibit/s,约 1500Mbps。后续尝试再增加无法突破。

改成 msd_lite 后,CPU 使用率明显下降,147 路播放时,CPU 在 50%-80% 之间波动。

上述播放,每个设备都是播放不同的电视源,最终是145路电视台同时播放。
接下来又分别将 M2 Max MacBook 和 PC 分别增加到 100 路和 72 路,重复播放 50 路。Mac 上这 10x10 的布局画面都展示出来了,但是无法流畅播放,幻灯片一样。

在 200 路播放的时候,iTV 的网口的流量达到了 1.4-1.45Gibit/s ,对应约 1500Mbps 的带宽,与 147 路播放时一样,说明有可能是达到了 IPTV 线路的带宽上限。

🐎 IPTV 网速影响测试
在上面 UDPXY 测试的时候,由于我的 IPTV 最高带宽也才 1000Mbps,网络带宽在 2.5G 网口下均能跑到 1300M,在 1G 网口下也能跑到 1000M。因此当时我得出结论是:IPTV 带宽不会影响家宽带宽。

但是随着后面转向 msd_lite,将 IPTV 的带宽进一步提升到 1.2G,乃至最高的 1.47G 时,我发现了有趣的现象.
当播放 147 路,OpenWrt 监测 ITV 口带宽平均速率达到了 1.42 Gibit/s,约 1500Mbps。这个时候访问电信官网测速,下行下降到了两位数,在20-100Mbps 之间波动。

随后我关闭 PC 上的直播,总路数下降到91,网速恢复正常。后续我又尝试恢复 PC 上的直播,当PC的播放数量为7*6 = 42路时,iTV 带宽 1.2Gibit/s 左右,若继续增加播放数量,在上升到 1.25Gibit/s 左右,网速则受影响下载到 100 Mbps 以内。

原本我以为运营商应该是对家宽和 IPTV 的限速做了某种策略,这个 IPTV 达到 1.25Gibit/s 之后,可能会触发家宽线路的限速。但是随后又发生了一件奇怪的事情。

当我将播放数量增加到 200 路时,这时 iTV 的带宽又达到了 1.4Gibit/s-1.47Gibit/s 波动,这个时候我测速结果发现网速又回到了 1000M。这个时候我就不知道如何解释了。

📈 总结

如同我在最开头所说的这次测试「娱乐性质大于技术研究」。

这次折腾 IPTV,更多是「好玩」性质,没有哪个正常的家庭会有这种同时播放这么多路电视的需求。

最终的结论可能并不严谨,它仅代表了在我家网络和硬件条件下对东莞电信IPTV的测试结果。

  • 东莞电信 1000M 套餐附送的 IPTV,在 2.5G XGPON 光猫下,IPTV 能跑到 1.45 Gibit/s 的带宽。理论可支持 140+路 1080P 的直播。
  • 当 IPTV 带宽低于 1.2 Gibit/s 占用时,不影响原有的家庭网络带宽。
  • 当 IPTV 带宽高于 1.2 Gibit/s 时,有一定的几率,会触发家庭网络的限速。
(注:1.2 Gibit/s ≈ 1,229 Mbps,1.45 Gibit/s ≈ 1,500 Mbps)

评分

参与人数 1邪恶指数 +10 收起 理由
hawie + 10 正想折腾一下,谢谢了

查看全部评分

发表于 2024-12-27 20:30 来自手机 | 显示全部楼层
厉害了,有钱有闲有技术
发表于 2024-12-27 20:53 | 显示全部楼层
战略关注
发表于 2024-12-27 21:19 来自手机 | 显示全部楼层
不知道海南能不能这么玩,能的话好多出租屋就可以这么解决看电视的问题了
发表于 2024-12-27 21:26 | 显示全部楼层
想问一下楼主,这种组播方式是怎么切换频道的?比如我在IPTV机顶盒看频道A后那我能用电脑看频道B吗?
发表于 2024-12-27 21:28 | 显示全部楼层
大多数都是主宽带➗2
 楼主| 发表于 2024-12-27 21:39 | 显示全部楼层
路西法大大 发表于 2024-12-27 21:26
想问一下楼主,这种组播方式是怎么切换频道的?比如我在IPTV机顶盒看频道A后那我能用电脑看频道B吗? ...

能,每个频道就是一个独立的 url,你重复用不同 App 播放,切换都行
发表于 2024-12-27 21:56 | 显示全部楼层
现在酒店IPTV 为了省钱都这样搞 以前都是用广电的 现在搞个网关 装几个IPTV  你把地址设置进去 电视机上装个APP 直接就能点播了 老电视就用机顶盒
发表于 2024-12-27 23:35 | 显示全部楼层
马克一下,虽然不看电视。。。
发表于 2024-12-28 00:20 | 显示全部楼层
我这里的浙江电信直接就能看iptv组播,无需转换,无论是光猫拨号还是路由拨号都能看,
频道地址是rtp://233.50.201.118:5140这种,
内网的手机,电脑等,直接用vlc打开就可以看了,多设备也能同时看不同台。
发表于 2024-12-28 08:55 | 显示全部楼层
foru17 发表于 2024-12-27 21:39
能,每个频道就是一个独立的 url,你重复用不同 App 播放,切换都行

这样的话倒是有搞头啊,谢谢楼主解答
发表于 2024-12-28 09:12 | 显示全部楼层
这个要好好学习,说不定能省下有线电视的钱。
发表于 2024-12-28 10:36 来自手机 | 显示全部楼层
广州电信1000m/100m,利用op的udxpy转发IPTV一年多了,非常稳定。
但我和你的情况有所不同,iptv是单独的账户pppoe拨号,而广州电信分配的iptv带宽只有100mbps,看南国4k都会卡,一般来说只能同时开3个高清直播窗口。我也试过用pc拨号iptv,然后在pc上直接看iptv效果是一样的。
所以为什么你的iptv账户为什么可以超过100m?奇怪
发表于 2024-12-28 10:57 来自手机 | 显示全部楼层
wilsonkor 发表于 2024-12-28 10:36
广州电信1000m/100m,利用op的udxpy转发IPTV一年多了,非常稳定。
但我和你的情况有所不同,iptv是单独的账 ...

我这更坑,itv账号的带宽,50下10上。。。广东汕头电信
 楼主| 发表于 2024-12-28 11:23 | 显示全部楼层
wilsonkor 发表于 2024-12-28 10:36
广州电信1000m/100m,利用op的udxpy转发IPTV一年多了,非常稳定。
但我和你的情况有所不同,iptv是单独的账 ...

实测我这边 IPTV 峰值达到了 1500Mbps。。。147个台同时直播都可以,离谱了。
发表于 2024-12-28 12:00 | 显示全部楼层
你试试打开同一频道,看可以多开几个?
我用tivimate自带分屏,貌似开4个运营商4K稳定流畅,超过能开但是卡顿明显。不同频道只开过16个,app只能开16个。
环境武汉电信1150/100
另外你可以在恩山上发帖看看。
发表于 2024-12-28 12:23 | 显示全部楼层
电信iptv是最规范的。

走单独vlan防止出现播出事故。
发表于 2024-12-28 13:16 来自手机 | 显示全部楼层
没测深圳联通是不是因为广东联通就没组播
发表于 2024-12-28 16:17 来自手机 | 显示全部楼层
这玩意强度没pcdn高,就是家宽没那么高上传给你测试而已
发表于 2024-12-28 16:32 | 显示全部楼层
本帖最后由 lovezhiqi 于 2024-12-28 16:45 编辑

msd很强,楼主很有心 顶帖 给楼主做个汇总图

广东IPTV测试.png
发表于 2024-12-28 17:21 | 显示全部楼层
udpxy转发是怎么设置的,我是单线复用光猫给做个vlan绑定,这头op开个虚拟vlan跑的pppoe 拨号iptv。udpxy转出来有时候会影响上网
发表于 2024-12-28 18:09 | 显示全部楼层
厉害了,收藏先
发表于 2024-12-29 07:00 | 显示全部楼层
广东电信各地还不一样?
深圳电信PPPoE鉴权,不鉴权自设同网段静态IP的方式网关不通。看来还得抓包再模拟机顶盒的鉴权过程,这就复杂了。
发表于 2024-12-29 08:48 | 显示全部楼层
我这已经限制只能同时看两路。。。。
发表于 2024-12-30 09:12 | 显示全部楼层
厉害了!有空在家里也试试,我看光猫是有iptv的配置的,用的是单宽带。
发表于 2024-12-30 13:50 | 显示全部楼层
这个需要学习一下
发表于 2024-12-31 16:58 | 显示全部楼层
这个是不是还得先抓包拿到 组播源地址才行?
发表于 2024-12-31 17:25 | 显示全部楼层
大佬牛逼。不过这里面有一句没看明白。

转发组播

我也是昨天看到 /t/102603 这个帖子下的留言,发现可以通过「电脑插光猫 ITV 口直接播放」来验证是否能进行组播转发。
经过测试,我家东莞电信、深圳联通两地的 IPTV ,都可以满足。


这个电脑差光猫itv口? 网线?
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-1-3 13:32 , Processed in 0.127485 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表