
经常折腾 IPTV 的朋友应该知道,有本地 IPTV 组播源 + 组播转单播工具 + OpenWRT 路由器,在电脑、手机上搭配 APTV 等播放器,就可以看当地 IPV 电视直播。而且因为走的是运营商 IPTV 网络,稳定性极高。互联网上公开能找到的直播源,平时勉强还算稳定,遇到春晚、阅兵这种大型活动基本都歇菜了。
平时大家常用的组播转单播工具有 udpxy 、msd_lite 等,这次我要介绍一下我编写的这个工具 rtp2httpd-modern ,一定是目前功能最强的。
项目地址 https://github.com/stackia/rtp2httpd (欢迎点进查看完整介绍)
这个工具除了基本的组播转单播功能,还实现了:
两个演示视频:
https://github.com/user-attachments/assets/a8c9c60f-ebc3-49a8-b374-f579f8e34d92
https://github.com/user-attachments/assets/fedc0c28-f9ac-4675-9b19-a8efdd062506
顺便附上我本地(海南电信 IPTV )的抓源脚本和 m3u8: https://github.com/stackia/hainan-telecom-iptv-updater
1 freebsdjlu 51 天前 组播必须开通 iptv 服务才可以么 |
2 v1 51 天前 @freebsdjlu 看运营商和省份,比如上海移动的,你只要是移动宽带,用别人抓包出来的组播地址也可以用 |
3 Damn 51 天前 via iPhone 澄迈的道友 |
4 Ccf 51 天前 济南联通有懒人版么 |
5 datou 51 天前 我电信的机顶盒还要 pppoe 一下 |
7 Kale 51 天前 谢谢 OP ,请问之前开通过 IPTV ,但是一直用不了,因为电视机那里没留网线口,用这个可以吗?路由器是软路由 openwrt |
8 jsq2627 OP @Kale 可以,这也是大多数人折腾 iptv 内网融合的原因。重点是搞清楚本地运营商认证方式,在 openwrt 上接通 iptv 网络,设置好路由策略,具体搜索 iptv 内网融合 |
9 ajyz 51 天前 看着很强大,先支持一下 |
10 zli 51 天前 请问一下 OP , 25 条 1080p 组播流同时播放演示视频里 用的是哪款播放器? |
11 jsq2627 OP @zli mac 端的 APTV https://aptv.wegic.app |
13 piero66 51 天前 star 了 |
14 109653VIP 51 天前 有没有单文件的编译 |
15 Archeb 50 天前 感谢开源!虽然广东电信这边支持 RTSP 单播,但是有这么一个现代化的项目肯定能造福很多 IPTV 用户 |
16 Rinndy 50 天前 via iPhone 不知道为什么播放 1 分钟左右就断开重连,正常吗 |
17 iloveyou1985 50 天前 via iPhone 我是 x86 的 ikuai 软路由,可以用吗? |
18 foxk 50 天前 Nice ,必须 Star |
19 lvxudong 50 天前 好东西 |
20 jsq2627 OP ikuai 我了解比较少。可以尝试自己编译,图省事的话可以尝试 docker 方案 x86 openwrt 肯定是可以的,我自己就是 x86 openwrt 软路由 |
21 jsq2627 OP |
24 heiher 50 天前 via Android |
25 scegg 49 天前 开始播放一分钟左右,会重新缓冲一次,后续观察了 3 分钟不会再有缓冲问题。 再换个频道还是一样一分钟后重新缓冲一次。 |
26 qiankunyu 49 天前 via Android 弄完了电视和手机都没问题,电脑 potplayer 报错 |
27 jsq2627 OP |
28 scegg 48 天前 @jsq2627 测试 V2.2.0 ,并在同一个环境( openwrt )下测试了 udpxy 。深圳电信 IPTV 。 延迟低的频道:会在打开几秒后重新缓冲一次,之后一切正常。 延迟高( 1000ms+)的频道:播放中会明显出现解码错误导致色块,帧内容前后重叠等(对于字幕区域特别明显)。 udpxy 测试同样的频道没有类似的问题,可能实现的机制有所不同? |
29 yutian12345 48 天前 via Android 直接转就可以快速换台吗 |
30 YGBlvcAK 48 天前 非常感谢大佬的分享,不会编译,求个 x86 的二进制包,同时求个北京联通和移动的 FCC 地址? |
31 yutian12345 48 天前 同样有 luci 显示,而且修改完配置用命令重启也没用 能弄个旧版本兼容不 |
32 yutian12345 48 天前 搜了一下提示 MSG_ZEROCOPY support is required 应该是内核太老,没法搞了 |
33 FakerLeung 48 天前 家里有 IPtv ,怎么抓包出来?因为我爸希望在外出旅游时也想看?能说下怎么用吗 |
34 qiankunyu 48 天前 via Android 有大佬抓一下江苏电信最新的 fcc 地址吗 |
35 jsq2627 OP @yutian12345 最低内核要求 4.14 ,应该是太老了。项目强依赖内核的 MSG_ZEROCOPY 特性,没法继续向下兼容了 |
36 y1y1 48 天前 原来 FCC 是这个意思,挺不错的工具 |
40 jsq2627 OP |
41 CHNTDCS 47 天前 真不错,晚上有空了替换了 udpxy 试试看效果。 |
43 wolonggl 47 天前 建议增加一个播放日志记录功能 |
44 siriussilen 47 天前 Nice Work |
45 m1s4k1 47 天前 对比 udpxy 有哪些优势呢, 有替换的意愿 |
47 wolonggl 46 天前 我这边测试播放电信 iptv 组播,出现频繁锻炼,udpxy 和 msd_lite 正常 日志: 18:39:28[ERROR]Multicast: No data received for 1 seconds, closing connection 18:41:34[ERROR]Multicast: No data received for 1 seconds, closing connection 18:41:53[ERROR]Multicast: No data received for 1 seconds, closing connection 18:42:13[ERROR]Multicast: No data received for 1 seconds, closing connection 18:42:37[ERROR]Multicast: No data received for 1 seconds, closing connection |
48 q197 46 天前 via Android 太强了。我不太懂这类软件的技术,想请教一下:我以前用树莓派部署 udpxy 转发 iptv 为 http ,发现其实性能消耗很大,同时开 4 个台树莓派 CPU 就跑满了。不知道是为什么?这个组播转 http 需要视频编码或者封装吗?不知道楼主开发的软件性能上和 udpxy 相比提升怎样,树莓派能不能多带几路甚至开几十几百个不卡 |
49 jsq2627 OP @q197 udpxy 使用的是 fork + select + 阻塞 IO 这一套古典网络编程模式,多几路连接对 CPU / 内存的开销都比较高。 我开发的这个程序使用 multi worker + epoll + 非阻塞 IO 这套现代网络编程模式,理论上性能和占用会比 udpxy 好很多。 组播转 http 不涉及视频解码,只涉及解 RTP 封装,但是需要的计算量很少,本身不应该占用太多 CPU 。 树莓派的性能应该是优于许多 ARM 路由器的,我觉得带十几路应该没问题(我自己没有树莓派,纯推测) |
51 yeh 45 天前 MSG_ZEROCOPY support is required 群晖内核太老了,已经搞不上去了 |
53 hjj0529 45 天前 支持,广西电信测试,好用。 |
54 dantesv2 44 天前 加了 fcc 服务器换台也比 msd_lite 慢很多,不知道什么问题. |
56 wakaba94 43 天前 遇到了一个奇怪问题,PotPlayer 播放时会只有音频流没有视频流,查看 debug 和 info 日志都和正常频道没区别,然后切换频道再切回去就正常了。 |
57 hjj0529 43 天前 @sp670 测试了一下,广西电信用这个插件,效果不是很明显,跟直接播放组播或者单播差距不大,不知道是我播放器问题还是什么问题,看日志是能成功的。 fcc:113.15.79.82:8027 |
58 hjj0529 43 天前 @wakaba94 potplayer 我也遇到类似问题,但是应该不是这个插件导致,我用 msd-lite 插件也是如此,特别是北京卫视 4K ,我遇到这种问题比较多,似乎是没识别出视频格式和分辨率。 |
60 Withal 43 天前 |
61 sun82kg 43 天前 有没有道友搞一个, 一键抓取 iptv 盒子里节目地址的列表的工具。 |
62 steveny5997 43 天前 北京联通好用,谢谢楼主 |
63 hanguofu 42 天前 via Android 谢谢分享~~~ |
65 kongkongmaster 42 天前 @sun82kg #61 同求,现在 IPTV 盒子抓包解析还是麻烦 |
66 matoung 42 天前 点赞 一直在用 udpxy ,抽空试下 |
67 tvirus 41 天前 貌似不支持这样的格式 http://192.168.1.1:5140/rtsp/admin:[email protected]:554/live/stream1 , 会报错 8:20:07 AM[ERROR]RTSP: Cannot resolve hostname admin: Unknown host 8:20:07 AM[ERROR]RTSP: Failed to initiate connection |
69 zhughe 41 天前 先插个眼 |
70 zhujaylon 40 天前 @steveny5997 可以分享一下北京联通的 fcc 地址吗 感谢 |
71 matoung 40 天前 陕西电信 FCC 亲测好用,体验提升明显,已经从 udpxy 切换到 rtp2http 了 感谢 |
73 FeranyDev 38 天前 有考虑过把不同客户端对同一个服务合并到一起吗,现在还是会有两个 udp 链路 [https://image-uploader.feranydev.com/api/users/daf6b544-b684-4d77-b381-ed9ecb2152d0/images/2025/10/18/20251018084504.png] |
76 cbigame0205 37 天前 via iPhone 安装成功后服务这里找不到应用,软件包这里已安装显示是有的,固件版本 24.10 ,内核 6.6.93 的硬路由 |
77 cbigame0205 37 天前 via iPhone 而且他不是一直不显示,我最早安装好是有的,后来版本更新了一下,我又一键安装了一下就消失了 |
78 xxgzzzzzz 37 天前 大哥 这个 webui 能打包进 Linux 二进制文件吗? 非 openwrt 想用来转发多路监控 |
79 jsq2627 OP |
81 liton 35 天前 webui 有可能加入一键抓取 iptv 盒子里节目地址的列表的工具吗 |
82 ihipop 35 天前 不错 udpxy 确实稳定简单 但是 实在是太老了 |
83 jsq2627 OP @xxgzzzzzz 前端项目是 npm 构建出来,gzip 打包进二进制里面的。前端项目能独立运行 https://github.com/stackia/rtp2httpd/tree/main/web-ui |
84 jessechoi 34 天前 @cbigame0205 "而且他不是一直不显示,我最早安装好是有的,后来版本更新了一下,我又一键安装了一下就消失了"跟我遇到的一模一样,请问你解决了吗? |
85 dream7758522 34 天前 via Android 想问一下升级的话咋升级?系统是 openwrt x86 |
86 cbigame0205 34 天前 via iPhone @jessechoi 没解决,刷新缓存,重启路由器,启动项里重启,手动安装都试过了,都不显示 |
87 cbigame0205 34 天前 作者是不是能帮忙看看服务不显示的问题,我看 github 的 Issues 里也有人提过这个问题,本帖里也有其他人,应该是某个共性的问题。 我的 固件版本 ImmortalWrt 24.10-SNAPSHOT r33226+3-0dfdb7b25f / LuCI openwrt-24.10 branch 25.170.50544~8fa3810 内核版本 6.6.93 |
88 jsq2627 OP @cbigame0205 建议不要太纠结于没有 luci ui ,可以直接编辑 /etc/config/rtp2httpd ,用 /etc/init.d/rtp2httpd restart 来启动 因为我手上没有 openwrt 24.10 的测试环境,所以暂时不好 debug |
89 cbigame0205 34 天前 @jsq2627 因为更新比较频繁的,编辑/etc/config/rtp2httpd 会让设置每次都重置吗 另外一个主要是有 UI 我可以远程访问我父母家的路由器改设置,通过改文件就比较麻烦了 还是感谢楼主 |
90 jsq2627 OP @cbigame0205 不会被覆盖,opkg 在升级时会保留 /etc/config 下被修改的文件不被覆盖 |
91 jsq2627 OP @cbigame0205 我后面有时间会去测试和适配 24.10 的,作为主流版本肯定不会不管 |
92 cbigame0205 34 天前 好的,反正 star 项目了,后面再关注,感谢 |
93 jessechoi 33 天前 @jsq2627 我的是 istoreOS ,istore 里有 udpxy 、msd_lite 一键安装运行后很适合小白用户,希望以后 rtp2httpd 也能上架! |
94 jsq2627 OP @dream7758522 现在重新运行遍一键安装脚本就可以升级 |
95 jsq2627 OP |
96 yutian12345 29 天前 @jsq2627 牛逼,晚上回去试试看 |
97 zjwww 28 天前 上海电信这边貌似 vlan85 限速 100m ,1080p 的源最多 8 开,再多就不行了,不知道有没有办法突破。 |
99 zjwww 28 天前 @jsq2627 应该不是,我是换了 7015tv3 的,2.5G 口以外的所有口应该都是 1000m, 接了两个 itv 设备,一个原配 itv 盒子( 100m 口),一个组转单设备(也是 100m ),两边同时放,算下来就最多 8 路,如果先开了一个 1080p 频道,另外一个设备就打不开 4k 频道了(1080 频道却可以),把一台设备上的 1080p 频道关了,另一台 4k 就可以打开,两边是两个独立的设备,所以我反复测试判断下来,应该是 vlan85 上被电信限制了总的下行 100m ,至少目前上海电信(虹口区)是这样。 |
100 JoeSmith 27 天前 我来砸一下场子 有网管交换机的话,完全不需要转单播,用 VLAN 全解决了。 我家里情况比较复杂,光猫在弱电箱,弱电箱到客厅只有一条线,那么这条线既要给电视盒子用,也要给电视和其他客厅设备用,那咋办呢?我在弱电箱里接了一个交换机,客厅另一个交换机,光猫电视口接到弱电箱交换机上,弱电箱交换机和客厅交换机通过唯一的一根线相连。然后通过 VLAN 设置,在客厅交换机上把 IPTV 和 其他 网络分隔开来。 具体配置就不赘述了,稍微有那么点烧脑,我的俩交换机还不是同一个牌子的,不过 vlan 的概念都一样。 如果不需要跨交换机的话,那就更简单了。 |