{"id":43443772,"url":"https://github.com/stackia/rtp2httpd","last_synced_at":"2026-03-16T10:11:12.280Z","repository":{"id":193808632,"uuid":"689376936","full_name":"stackia/rtp2httpd","owner":"stackia","description":"Multicast RTP/RTSP to Unicast HTTP stream converter, with built-in web player, status dashboard, fast channel change support, and more!","archived":false,"fork":false,"pushed_at":"2026-03-03T15:17:23.000Z","size":176049,"stargazers_count":1443,"open_issues_count":25,"forks_count":237,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-03-03T18:42:46.288Z","etag":null,"topics":["china-iptv","fast-channel-change","iptv","iptv-m3u","iptv-player","msd-lite","multicast","rtp","rtp-proxy","rtsp-proxy","udpxy"],"latest_commit_sha":null,"homepage":"https://rtp2httpd.com","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"oskar456/rtp2httpd","license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stackia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-09-09T16:00:41.000Z","updated_at":"2026-03-03T16:24:30.000Z","dependencies_parsed_at":"2023-09-10T06:43:22.894Z","dependency_job_id":null,"html_url":"https://github.com/stackia/rtp2httpd","commit_stats":null,"previous_names":["stackia/rtp2httpd"],"tags_count":86,"template":false,"template_full_name":null,"purl":"pkg:github/stackia/rtp2httpd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackia%2Frtp2httpd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackia%2Frtp2httpd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackia%2Frtp2httpd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackia%2Frtp2httpd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stackia","download_url":"https://codeload.github.com/stackia/rtp2httpd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackia%2Frtp2httpd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30204740,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T19:07:06.838Z","status":"ssl_error","status_checked_at":"2026-03-06T18:57:34.882Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["china-iptv","fast-channel-change","iptv","iptv-m3u","iptv-player","msd-lite","multicast","rtp","rtp-proxy","rtsp-proxy","udpxy"],"created_at":"2026-02-02T23:26:13.519Z","updated_at":"2026-03-16T10:11:12.274Z","avatar_url":"https://github.com/stackia.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003cimg src=\"./icon.svg\" width=\"24\" height=\"24\"\u003e rtp2httpd - IPTV 流媒体转发服务器\n\n[\u003e\u003e 访问官方文档网站 \u003c\u003c](https://rtp2httpd.com)\n\n[\u003e\u003e English Documentation \u003c\u003c](https://rtp2httpd.com/en/)\n\nrtp2httpd 是一个多媒体流转发服务器。本项目基于 [oskar456/rtp2httpd](https://github.com/oskar456/rtp2httpd) 做了完全重写，在原项目基础上加入了许多新功能，专为中国大陆 IPTV 环境设计。\n\nrtp2httpd 支持将组播 RTP/UDP 流、RTSP 流转换为 HTTP 单播流，并实现了运营商级的 FCC（[Fast Channel Change](https://blog.csdn.net/yangzex/article/details/131328837)）快速换台协议，可以作为 `udpxy` 和 `msd_lite` 的无缝替代，为 IPTV 用户提供接近原生机顶盒的观看体验。\n\n## ✨ 核心功能特性\n\n### 📡 多协议支持\n\n- **RTP-\u003eHTTP**：将组播 RTP/UDP 流转换为标准 HTTP 流\n- **RTSP-\u003eHTTP**：RTSP 转为 HTTP 视频流，完整支持 RTSP/RTP 协议栈，支持 UDP NAT 穿透 (STUN)\n  - 可以实现 IPTV RTSP 时移源的回看\n- **HTTP-\u003eHTTP**：实现了完整反向代理，可以将 IPTV 内网 HLS 源代理到局域网、公网，方便观看\n- **udpxy 兼容性**：完全兼容 udpxy URL 格式\n- **M3U 播放列表集成**：支持 M3U/M3U8 格式，自动识别并转换节目地址，提供标准化的播放列表\n  - 支持外部 M3U URL\n  - 智能识别 RTP/RTSP URL 并转换为 HTTP 代理格式\n  - 自动处理 catchup-source 时移回看地址\n  - 通过 `http://\u003cserver:port\u003e/playlist.m3u` 访问转换后的播放列表\n- **抗丢包抗抖动**：支持乱序恢复、FEC 前向纠错技术，保证播放质量\n  - 自动纠正乱序到达的 RTP 包，消除网络抖动导致的花屏\n  - 支持 Reed-Solomon FEC 冗余恢复，可抵抗轻度丢包（需组播上游支持 FEC）\n- **频道快照**：支持通过 HTTP 请求快速获取频道的快照图片，降低播放端解码压力\n\n### ⚡ FCC 快速换台技术\n\n- **支持运营商 FCC 协议**：搭配运营商 FCC 服务器，实现毫秒级换台响应，媲美原生 IPTV 机顶盒\n- **快速解码**：FCC 保证了换台时迅速提供 IDR 帧，可供播放器立即解码\n\n### 📊 实时状态监控\n\n- **Web 状态页面**：通过浏览器访问 `http://\u003cserver:port\u003e/status` 查看实时运行状态\n- **客户端连接统计**：显示每个连接的 IP、状态、带宽使用、传输数据量\n- **系统日志查看**：实时查看服务器日志，支持动态调整日志级别\n- **远程管理功能**：通过 Web 界面强制断开客户端连接\n\n### 🎬 内置播放器\n\n- **浏览器直接使用**：内置基于 Web 的现代化播放器界面，可以在浏览器直接打开播放，桌面/移动端 UI 自适应\n- **快速起播**：搭配 FCC 可实现快速起播、快速换台\n- **支持时移和回看**：支持 EPG 电子节目单，支持时移和回看（需要有 RTSP 回看源）\n- **零开销**：纯 Web 前端实现，对 rtp2httpd 运行几乎没有资源占用（无解码转码开销）\n\n### 🚀 高性能优化\n\n- **非阻塞 IO 模型**：使用 epoll 事件驱动，高效处理大量并发连接\n- **多核优化**：支持多 worker 进程，充分利用多核 CPU 提高最大吞吐量\n- **缓冲池优化**：预分配缓冲池，避免频繁内存分配，多客户端根据负载动态共享，避免慢客户端吃满资源\n- **零拷贝技术**：支持 Linux 内核 MSG_ZEROCOPY 特性，避免数据在用户态和内核态之间的拷贝\n- **轻量化**：使用纯 C 语言编写，零依赖，小巧简洁，适合运行在各种嵌入式设备上（路由器、光猫、NAS 等）\n  - 程序大小仅 340KB (x86_64)，并内置了 Web 播放器所有前端资源\n- 查看 **[性能测试报告](https://rtp2httpd.com/reference/benchmark)**（与 msd_lite、udpxy、tvgate 的性能对比）\n\n## 📹 演示效果\n\n### 快速换台 + 时移回看\n\nhttps://github.com/user-attachments/assets/ca1a332f-d6e7-4a1e-be88-92bef67758b3\n\n\u003e [!TIP]\n\u003e 快速换台需要使用针对 IPTV 优化的播放器，例如 [mytv-android](https://github.com/mytv-android/mytv-android) / [TiviMate](https://tivimate.com) / [Cloud Stream](https://apps.apple.com/us/app/cloud-stream-iptv-player/id1138002135) 等（视频中的播放器是 mytv-android）。\n\u003e 常见普通播放器，例如 PotPlayer / IINA 等，没有专门优化起播速度，FCC 效果不明显。\n\n### 内置播放器\n\nhttps://github.com/user-attachments/assets/b32f134d-87ac-46d0-90fe-50ffa410069a\n\n\u003e [!TIP]\n\u003e 需要配置 M3U 播放列表后使用，通过浏览器访问 `http://\u003cserver:port\u003e/player` 即可打开。\n\u003e 受限于浏览器解码能力，一些频道可能不支持（表现为无音频、画面黑屏）。\n\n### 实时状态监控\n\n\u003cimg width=\"3046\" height=\"1508\" alt=\"web-dashboard\" src=\"https://github.com/user-attachments/assets/8758c0ab-b144-41ed-8d90-9c41b375e22b\" /\u003e\n\n### 25 条 1080p 组播流同时播放\n\nhttps://github.com/user-attachments/assets/9d531ab6-6c35-4c50-802a-71f88b6b22c5\n\n\u003e [!NOTE]\n\u003e 单流码率 8 Mbps。总仅占用 25% CPU 单核 (i3-N305)，消耗 4MB 内存。\n\n## 📖 文档\n\n- **[快速上手](https://rtp2httpd.com/guide/quick-start)**：OpenWrt 快速配置指南\n- **[安装方式](https://rtp2httpd.com/guide/installation)**：各种平台的安装指南\n\n如果是首次搭建 IPTV 组播转发服务，对相关网络知识比较陌生（DHCP 鉴权、路由、组播、防火墙），推荐先看 [搭建教程](https://rtp2httpd.com/reference/related-resources#iptv-搭建教程)。\n\n## 📄 开源许可\n\n本项目基于 GNU General Public License v2.0 开源协议发布。这意味着：\n\n- ✅ 可以部署在商业环境中（如企业内部使用）\n- ✅ 可以基于它提供收费的 IPTV 转码服务\n- ✅ 可以在有偿 IPTV 咨询服务中使用本软件\n- ✅ 可以销售包含此软件的硬件设备\n- ⚠️ 如果修改代码，必须公开修改后的源代码\n- ⚠️ 如果分发二进制文件，必须同时提供源代码\n- ⚠️ 不能将其闭源后再销售\n\n## 🙏 致谢\n\n- 原始项目 [oskar456/rtp2httpd](https://github.com/oskar456/rtp2httpd) 的开发者们\n- 愿意在互联网上公开 FCC 协议细节的业内人士\n- 所有测试和反馈用户\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackia%2Frtp2httpd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstackia%2Frtp2httpd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackia%2Frtp2httpd/lists"}