foru17 发表于 2024-12-27 20:28

广东电信 IPTV 组播转单播极限测试

本帖最后由 foru17 于 2024-12-28 14:13 编辑

这两天给家里弄好了 IPTV 的组播转单播,心血来潮,想看看极限能跑多少路 IPTV 直播。
有关这次折腾 IPTV 的记录和讨论,我也发到了推特和 V2EX 上。

[*]推特:东莞电信 IPTV
[*]推特:深圳联通 IPTV
[*]推特:突破 1000M
[*]V2EX: 广东电信 IPTV 组播极限测试
[*]Chiphell:广东电信 IPTV 组播转单播极限测试

这篇帖子不是教程,由于全国各地不同运营商对于 IPTV 有不同的网络策略,还是建议各位自行以「IPTV + OpenWrt + 组播」等关键字搜索符合当地运营商的教程。
由于这次测试「娱乐性质大于技术研究」,加上本人并不是网络相关专业,并且本人家庭设备诸多限制,注定有诸多不严谨的地方,这篇文章只是记录下下结果,不探讨相关运营商、网络、组网等技术细节。
简单来说,图一乐就好。
组播转单播

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

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

如果家里还有人要看电视,还是推荐可以搞个这个方案,在 AppleTV 、手机、平台上就能直接看直播了,而且没有机顶盒那么多广告。
有点可惜现在才弄这套方案,前段时间奥运会期间,和老婆在家看比赛直播还是挺多的。
参考资料
[*]简化版:[技术交流] 软路由转发实现全屋任意设备观看 IPTV
[*]IPTV 折腾全记录 - 多种方案详解
[*]广州电信广东IPTV列表(组播地址)
[*]联通 IPTV 组播地址

🌐 网络条件
[*]东莞电信 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 开发的多路播放器,支持硬解。

[*]gridplayer

用 IINA 也试过,最多只能播放 15 个且很卡顿,后来搜到 GridPlayer 发现可以满足需求。https://c2.is26.com/blog/2024/12/iptv/t-4.jpg广电电信的组播除了表情,也提供 1080P 的直播源,还有少数 4K,我订阅的电视源使用的都是 HD 1080P 25帧的资源,码率 7Mbps - 10Mbps 波动,大多时候是 8Mbps。
某些 4K 直播源码率码率则在 30Mbps 左右,但是数量较少,这次我过滤留下了 145 个电视台,144 个是 1080P 25帧。
❗ 重要提醒一开始我使用 UDPXY 作为直播流代理。由于一开始配置的时候填写了最大客户端50的限制,后面测试的时候发现最大播放数量被限制在 55 路,误导我一直以为 IPTV 的最大播放数量被限制了。
但是使用 UDPXY 这一步测试结果依旧保留,仅供参考。
📊 UDPXY 测试结果下面以 UDPXY 转发测试过程的一些截图:https://c2.is26.com/blog/2024/12/iptv/t-1.jpgMac 最多只能播放 25 路。
https://c2.is26.com/blog/2024/12/iptv/t-2.jpgMac 那边继续直播 25路,PC 额外播放 30 路,CPU 压力很大。
https://c2.is26.com/blog/2024/12/iptv/t-3.jpg OpenWrt 监测 ITV 口带宽平均下来 500Mbps。
https://c2.is26.com/blog/2024/12/iptv/t-5.jpgV 站有网友评论说 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 网口上。

[*]msd_lite

这一轮测试,出动了 M2 Mac MacBook / PC / M2 Mac Mini 共三台设备测试,同时客厅的 AppleTV 也在 4 路同屏一直播放(三台电脑同时播放时,硬件性能瓶颈太大都会卡顿,AppleTV 4 路直播不会因为硬件问题瓶颈,作为一个标定组)。https://c2.is26.com/blog/2024/12/iptv/t-11.jpgM2 Max MacBook 一直播放 62 路不停止,画面都能出来,但是播放不流畅,CPU 占用率 60-80% 之间波动。
https://c2.is26.com/blog/2024/12/iptv/t-12.jpg 旁边的 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 网络宽带

https://c2.is26.com/blog/2024/12/iptv/t-8.jpg PC 在播放 56 路时,CPU 压力依旧很大。
https://c2.is26.com/blog/2024/12/iptv/t-9.jpg 在 147 路播放时,OpenWrt 监测 ITV 口带宽平均速率达到了 1.42 Gibit/s,约 1500Mbps。后续尝试再增加无法突破。
https://c2.is26.com/blog/2024/12/iptv/t-10.jpg 改成 msd_lite 后,CPU 使用率明显下降,147 路播放时,CPU 在 50%-80% 之间波动。
上述播放,每个设备都是播放不同的电视源,最终是145路电视台同时播放。https://c2.is26.com/blog/2024/12/iptv/t-13.jpg接下来又分别将 M2 Max MacBook 和 PC 分别增加到 100 路和 72 路,重复播放 50 路。Mac 上这 10x10 的布局画面都展示出来了,但是无法流畅播放,幻灯片一样。
https://c2.is26.com/blog/2024/12/iptv/t-15.jpg 在 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 时,我发现了有趣的现象.https://c2.is26.com/blog/2024/12/iptv/t-7.jpg 当播放 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 之后,可能会触发家宽线路的限速。但是随后又发生了一件奇怪的事情。
https://c2.is26.com/blog/2024/12/iptv/t-14.jpg当我将播放数量增加到 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)

zqintel 发表于 2024-12-27 20:30

厉害了,有钱有闲有技术

hans_marke 发表于 2024-12-27 20:53

战略关注

InuYasha 发表于 2024-12-27 21:19

不知道海南能不能这么玩,能的话好多出租屋就可以这么解决看电视的问题了

路西法大大 发表于 2024-12-27 21:26

想问一下楼主,这种组播方式是怎么切换频道的?比如我在IPTV机顶盒看频道A后那我能用电脑看频道B吗?

sdysj 发表于 2024-12-27 21:28

大多数都是主宽带➗2

foru17 发表于 2024-12-27 21:39

路西法大大 发表于 2024-12-27 21:26
想问一下楼主,这种组播方式是怎么切换频道的?比如我在IPTV机顶盒看频道A后那我能用电脑看频道B吗? ...

能,每个频道就是一个独立的 url,你重复用不同 App 播放,切换都行

Jackstraws 发表于 2024-12-27 21:56

现在酒店IPTV 为了省钱都这样搞 以前都是用广电的 现在搞个网关 装几个IPTV你把地址设置进去 电视机上装个APP 直接就能点播了 老电视就用机顶盒

zxy2001 发表于 2024-12-27 23:35

马克一下,虽然不看电视。。。

dert 发表于 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

这个要好好学习,说不定能省下有线电视的钱。

wilsonkor 发表于 2024-12-28 10:36

广州电信1000m/100m,利用op的udxpy转发IPTV一年多了,非常稳定。
但我和你的情况有所不同,iptv是单独的账户pppoe拨号,而广州电信分配的iptv带宽只有100mbps,看南国4k都会卡,一般来说只能同时开3个高清直播窗口。我也试过用pc拨号iptv,然后在pc上直接看iptv效果是一样的。
所以为什么你的iptv账户为什么可以超过100m?奇怪

huantty 发表于 2024-12-28 10:57

wilsonkor 发表于 2024-12-28 10:36
广州电信1000m/100m,利用op的udxpy转发IPTV一年多了,非常稳定。
但我和你的情况有所不同,iptv是单独的账 ...

我这更坑,itv账号的带宽,50下10上。。。广东汕头电信

foru17 发表于 2024-12-28 11:23

wilsonkor 发表于 2024-12-28 10:36
广州电信1000m/100m,利用op的udxpy转发IPTV一年多了,非常稳定。
但我和你的情况有所不同,iptv是单独的账 ...

实测我这边 IPTV 峰值达到了 1500Mbps。。。147个台同时直播都可以,离谱了。

basiak 发表于 2024-12-28 12:00

你试试打开同一频道,看可以多开几个?
我用tivimate自带分屏,貌似开4个运营商4K稳定流畅,超过能开但是卡顿明显。不同频道只开过16个,app只能开16个。
环境武汉电信1150/100
另外你可以在恩山上发帖看看。

cyberms 发表于 2024-12-28 12:23

电信iptv是最规范的。

走单独vlan防止出现播出事故。

Mashiro_plan_C 发表于 2024-12-28 13:16

没测深圳联通是不是因为广东联通就没组播[狂笑]

fyc858 发表于 2024-12-28 16:17

这玩意强度没pcdn高,就是家宽没那么高上传给你测试而已[恶魔]

lovezhiqi 发表于 2024-12-28 16:32

本帖最后由 lovezhiqi 于 2024-12-28 16:45 编辑

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

lasx 发表于 2024-12-28 17:21

udpxy转发是怎么设置的,我是单线复用光猫给做个vlan绑定,这头op开个虚拟vlan跑的pppoe 拨号iptv。udpxy转出来有时候会影响上网

pj1119 发表于 2024-12-28 18:09

厉害了,收藏先

hawie 发表于 2024-12-29 07:00

广东电信各地还不一样?
深圳电信PPPoE鉴权,不鉴权自设同网段静态IP的方式网关不通。看来还得抓包再模拟机顶盒的鉴权过程,这就复杂了。

iori9051 发表于 2024-12-29 08:48

我这已经限制只能同时看两路。。。。

二手烟 发表于 2024-12-30 09:12

厉害了!有空在家里也试试,我看光猫是有iptv的配置的,用的是单宽带。

earth711 发表于 2024-12-30 13:50

这个需要学习一下

lzbnet 发表于 2024-12-31 16:58

这个是不是还得先抓包拿到 组播源地址才行?

pmax 发表于 2024-12-31 17:25

大佬牛逼。不过这里面有一句没看明白。

转发组播

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

这个电脑差光猫itv口? 网线?

龙的天空 发表于 2025-2-9 23:10

深圳电信能搞吗

二手烟 发表于 2025-2-10 06:57

我觉得前提是你家里要有开iptv,然后把接盒子的那条网线接到电脑上。
我没开iptv,电脑连光猫的iptv 口搞了半天,没料到。
页: [1] 2
查看完整版本: 广东电信 IPTV 组播转单播极限测试