rtp2httpd
rtp2httpd 是一个多媒体流转发服务器,专为中国大陆 IPTV 环境设计
安装次数
点赞
应用评论
催更次数
桌面端
移动端


应用描述
rtp2httpd 是一个多媒体流转发服务器,专为中国大陆 IPTV 环境设计。 rtp2httpd 支持将组播 RTP/UDP 流、RTSP 流转换为 HTTP 单播流,并实现了运营商级的 FCC(Fast Channel Change)快速换台协议,可以作为 udpxy 和 msd_lite 的无缝替代,为 IPTV 用户提供接近原生机顶盒的观看体验。 核心功能特性 📡 多协议支持 RTP->HTTP:将组播 RTP/UDP 流转换为标准 HTTP 流 RTSP->HTTP:RTSP 转为 HTTP 视频流,完整支持 RTSP/RTP 协议栈,支持 UDP NAT 穿透 (STUN) 可以实现 IPTV RTSP 时移源的回看 HTTP->HTTP:实现了完整反向代理,可以将 IPTV 内网 HLS 源代理到局域网、公网,方便观看 udpxy 兼容性:完全兼容 udpxy URL 格式 M3U 播放列表集成:支持 M3U/M3U8 格式,自动识别并转换节目地址,提供标准化的播放列表 支持外部 M3U URL 智能识别 RTP/RTSP URL 并转换为 HTTP 代理格式 自动处理 catchup-source 时移回看地址 通过 http://<server:port>/playlist.m3u 访问转换后的播放列表 抗丢包抗抖动:支持乱序恢复、FEC 前向纠错技术,保证播放质量 自动纠正乱序到达的 RTP 包,消除网络抖动导致的花屏 支持 Reed-Solomon FEC 冗余恢复,可抵抗轻度丢包(需组播上游支持 FEC) 频道快照:支持通过 HTTP 请求快速获取频道的快照图片,降低播放端解码压力 ⚡ FCC 快速换台技术 支持运营商 FCC 协议:搭配运营商 FCC 服务器,实现毫秒级换台响应,媲美原生 IPTV 机顶盒 快速解码:FCC 保证了换台时迅速提供 IDR 帧,可供播放器立即解码 📊 实时状态监控 Web 状态页面:通过浏览器访问 http://<server:port>/status 查看实时运行状态 客户端连接统计:显示每个连接的 IP、状态、带宽使用、传输数据量 系统日志查看:实时查看服务器日志,支持动态调整日志级别 远程管理功能:通过 Web 界面强制断开客户端连接 🎬 内置播放器 浏览器直接使用:内置基于 Web 的现代化播放器界面,可以在浏览器直接打开播放,桌面/移动端 UI 自适应 快速起播:搭配 FCC 可实现快速起播、快速换台 支持时移和回看:支持 EPG 电子节目单,支持时移和回看(需要有 RTSP 回看源) 零开销:纯 Web 前端实现,对 rtp2httpd 运行几乎没有资源占用(无解码转码开销) 🚀 高性能优化 非阻塞 IO 模型:使用 epoll 事件驱动,高效处理大量并发连接 多核优化:支持多 worker 进程,充分利用多核 CPU 提高最大吞吐量 缓冲池优化:预分配缓冲池,避免频繁内存分配,多客户端根据负载动态共享,避免慢客户端吃满资源 零拷贝技术:支持 Linux 内核 MSG_ZEROCOPY 特性,避免数据在用户态和内核态之间的拷贝 轻量化:使用纯 C 语言编写,零依赖,小巧简洁,适合运行在各种嵌入式设备上(路由器、光猫、NAS 等) 程序大小仅 340KB (x86_64),并内置了 Web 播放器所有前端资源 安装本应用前需要搭建IPTV组播转发服务或配置光猫IPTV端口融合到本地网络 IPTV组播转发服务搭建教程: https://rtp2httpd.com/reference/related-resources#iptv-%E6%90%AD%E5%BB%BA%E6%95%99%E7%A8%8B 官方文档: https://rtp2httpd.com/ 安装本应用前需要的操作 本应用使用了名为iptv的网卡,所以需要一些前提操作后,有名称为iptv的网卡后才能安装使用(否则应用启动会失败) 一.适用于基于懒猫网卡vlan(id: 45)接口的操作方法: 1. 开启微服sshd,并登录 2. mkdir -p ~/.config/systemd/user/ 3. vlanid=45 4. cat <<EOF > ~/.config/systemd/user/iptv.service [Unit] Description=create iptv interface After=network.target [Service] Type=oneshot ExecStart=sh -c 'ip link add link enp2s0 name iptv type vlan id $vlanid && ip link set dev iptv up' [Install] WantedBy=default.target EOF 5. systemctl --user enable iptv.service 6. systemctl --user start iptv.service 7. ip a|grep iptv@enp2s0 二.适用于基于usb网卡的操作方法: mkdir -p ~/.config/systemd/user/ ip a |grep -A3 enx 查看mac地址 cat <<'EOF' > /root/.config/systemd/user/usb-iptv-trigger.sh #!/bin/bash echo " [Match] MACAddress=00:00:aa:00:16:19 [Link] Name=iptv NamePolicy=kernel " > /etc/systemd/network/72-iptv.link /usr/bin/udevadm control --reload /usr/bin/systemctl restart systemd-udevd for dev in /sys/class/net/*; do if /usr/bin/udevadm info "$dev" | grep -q "ID_BUS=usb"; then name=$(basename "$dev") echo "Triggering udev for USB NIC: $name" /usr/bin/udevadm trigger --action=add $dev fi done EOF chmod +x ~/.config/systemd/user/usb-iptv-trigger.sh cat <<EOF > /root/.config/systemd/user/usb-iptv.service [Unit] Description=Create IPTV udev rule and reload for USB NICs After=network-pre.target DefaultDependencies=no [Service] Type=oneshot RemainAfterExit=yes ExecStart=/root/.config/systemd/user/usb-iptv-trigger.sh [Install] WantedBy=default.target EOF systemctl --user enable usb-iptv.service systemctl --user start usb-iptv.service 安装后rtp2httpd 给局域网内其它设备使用方法: 给apple tv 或电视机使用请使用 "局域网断开映射工具" 映射端口到应用的5140端口 应用部署参数说明 1, 如果已经配置了IGMP代理 , 不用开启PPPOE拨号, 如果是直通的iptv vlan, 需要开启PPPOE拨号并配置iptv 账号和密码 2, 如果启用了PPPOE拨号, 建议配置MAC 地址和电视盒子mac 地址一致, 不配置请留空
懒猫评分/评论
0.0
0 条评论
新功能
版本历史记录"第一次发布, 同步上游版本v3.11.0"
此 App 尚未收到足够的评分或评论,无法显示评论列表。