🛰️【分享】我用路由器把 IPTV 玩成视频网站:rtp2httpd 折腾记
「当你家里的 IPTV 频道加载还在转圈圈的时候,可能有个程序员已经在路由器上开了一个私有 CDN。」
🧩 前言:家里那根“神秘的网线”
某天我突发奇想:
既然家里 IPTV 盒子能看几十个频道,那这些频道到底从哪儿来的?能不能直接在我自己的设备上看?
于是我顺藤摸瓜,在 GitHub 上发现了一个神奇项目:
👉 stackia/rtp2httpd
一句话介绍它:把组播 RTP、UDP、RTSP 这些神秘流量变成人人能播的 HTTP 流。
听起来像是:
“帮你把 IPTV 的多播流变成可以在任何浏览器里打开的链接。”
这不就是我想要的东西嘛!
⚙️ 它到底能干啥?
官方一句话:
RTP/UDP/RTSP → HTTP 单播转发器,支持 FCC 快速换台。
我一句话:
路由器里的“小型流媒体服务器”,看直播、换台都快得离谱。
亮点功能:
- 🚀 FCC 快速换台:换频道就像刷 B 站一样快(不黑屏、不卡顿)。
- 💡 Web 状态页:实时看谁在看、看哪路、用多大带宽。
- 🧠 零拷贝 + 多 worker:吃 CPU 少得离谱,OpenWrt 都能跑。
- 🪄 RTSP 也能转:摄像头一键变 IPTV 频道。
- 🧱 LuCI 插件:Web 管理、开关、查看状态,全图形界面。
换句话说,这玩意就是“穷人版中间件级 IPTV 网关”。
🧪 实测:路由器当“电视台服务器”
我拿一台刷入了Openwrt的小米路由器4试了下。
执行下面一行命令就装好:
1 | curl -fsSL https://raw.githubusercontent.com/stackia/rtp2httpd/main/scripts/install-openwrt.sh | sh |
启动后,在浏览器打开:
1 | http://你的路由IP:9900/status |
——可以看到频道、客户端、带宽、缓存延迟,全在眼前,简直小型“流量监控中心”。
用 VLC 或 IPTV 播放器打开:
1 | http://路由IP:9900/udp/239.1.1.1:1234 |
啪的一下,频道直接出来。没有那种“转圈加载”仪式感。😆
⚡ FCC 快速换台的魔法
FCC(Fast Channel Change)是它的杀手锏。
原理是:
预缓存关键帧,切换频道时直接发一帧 + 快速接力后续流。
结果就是:
电视换频道像刷短视频一样——0.2 秒起播。
(我甚至怀疑它比我家官方 IPTV 盒子还快……)
🧱 如果你想更极客一点
rtp2httpd 支持各种参数,像:
1 | --r2h-token=abcdef123456 |
有鉴权、有重连、有多线程。
在 OpenWrt 里 /etc/config/rtp2httpd 配好启动项就完事。
LuCI 插件还能点点鼠标管理服务状态。
🧯 注意事项(别乱开公网)
- 组播流带版权!别分享出去!
- 如果真要远程访问,请加上
--r2h-token鉴权。 - 内核要 ≥ 4.14,才能用上它的零拷贝加速。
📈 实测性能:不夸张,真的稳
我实际跑了 25 路 1080p(8 Mbps)频道。
CPU 占用不到 25%,内存还富裕着。
感觉这玩意在路由器上简直是“外挂”。
💬 总结一句话:
“如果说 IPTV 是运营商的黑盒,那 rtp2httpd 就是把黑盒变成你的玩具。”
你能:
- 把摄像头当频道插进 IPTV 列表;
- 在局域网里开自己的“家庭电视台”;
- 顺便练习下组播、NAT、零拷贝这些底层概念。
🧭 参考链接
- GitHub: https://github.com/stackia/rtp2httpd
- 最新版:v2.6.1(2025.10 发布)
- 官方安装脚本 & LuCI 插件都在 Releases 里。
👨💻 结语:
这年头折腾路由器不仅能提网速,还能让它变电视台。
想试试 FCC 的爽感?你只需要一台支持 OpenWrt 的机器和一点耐心。
试完你就知道什么叫“延迟一去不复返”😂