Releases: stackia/rtp2httpd
Releases · stackia/rtp2httpd
v3.6.2
- 网页播放器:频道 logo 图片加载使用 no-referrer policy,避免一些网站的防盗链设置导致图片加载失败
- 修复在非常罕见的情况下,RTSP 连接会卡在
RTSP 完成 TEARDOWN状态且一直不会释放 - 设置 UDP RCVBUF 时,尝试使用
SO_RCVBUFFORCE以突破一些固件的默认内核参数net.core.rmem_max限制,可以改善 4K 视频流偶尔花屏马赛克问题 - 修复对于一些特殊的 RTSP 上游,断开连接时出现
RTSP: Socket event handling failed报错
- Web player: channel logo images now use no-referrer policy to avoid loading failures caused by hotlink protection on some websites
- Fixed a very rare case where an RTSP connection could get stuck in
RTSP TEARDOWN completedstate and never be released - When setting UDP RCVBUF, now attempts to use
SO_RCVBUFFORCEto bypass the default kernel parameternet.core.rmem_maxlimit on some firmware, improving occasional 4K video artifacts - Fixed
RTSP: Socket event handling failederror when disconnecting from some special RTSP upstreams
v3.6.1
- 兼容之前的
hostname配置行为,即当配置了https://your-domain.com时,生成的 m3u 内的频道地址会使用https而不是默认的http
- Restored backward compatibility with the previous
hostnameconfiguration behavior: when configured withhttps://your-domain.com, channel URLs in the generated m3u will usehttpsinstead of the defaulthttp
v3.6.0
新功能
- 新增 r2h-start 参数用来指定 RTSP PLAY 起始时间 by @yydewf
- 优化对反向代理场景的支持,playlist.m3u 现在会总是使用用户实际请求的 host 作为地址前缀。反向代理的具体配置方式请参考 公网访问建议。
- 如果你原先使用
hostname配置项来解决反代地址问题,现在需要改成开启xff配置项并透传X-Forwarded-For / X-Forwarded-Host / X-Forwarded-Proto头(对于 lucky,勾选"万事大吉"选项即可)
- 如果你原先使用
- INFO 日志输出现在会记录客户端的访问 IP:
New client <ip>:<port> requested URL
问题修复
- 改进对 gzipped epg.xml 兼容性 by @taksssss
New Features
- New r2h-start parameter to specify the RTSP PLAY start time by @yydewf
- Improved reverse proxy support: playlist.m3u now always uses the host from the actual client request as the URL prefix. See Public Access Guide for reverse proxy configuration.
- If you previously used the
hostnameconfiguration to resolve reverse proxy address issues, you now need to enable thexffoption and forwardX-Forwarded-For / X-Forwarded-Host / X-Forwarded-Protoheaders instead
- If you previously used the
- INFO log output now records the client's access IP:
New client <ip>:<port> requested URL
Bug Fixes
- Improved compatibility with gzipped epg.xml by @taksssss
v3.5.2
v3.5.1
v3.5.0
新功能
- 优化程序的生命周期管理,确保工作进程因各种异常退出时,能够被主进程重启
- 支持配置热重载。rtp2httpd 主进程现在支持以下信号:
- SIGHUP: 重新加载配置文件、重新拉取 M3U/EPG(不会断开已经连接的客户端)
- SIGUSR1: 强制重启所有工作进程(会断开所有已经连接的客户端)
- 对于 OpenWrt,运行后会在
/var/run下写入 pid 文件,方便用户输入信号- 例如:可以通过
kill -HUP $(cat /var/run/rtp2httpd_*.pid)输入 SIGHUP 触发配置热重载
- 例如:可以通过
- 在状态面板新增"服务控制",目前支持重载配置、重启工作进程、清空日志
问题修复
- 优化网页播放器性能,提升在一些低端设备上的 UI 响应性(例如 LG 电视 📺)
- OpenWrt LuCI 面板,r2h-token 不再使用密码样式输入框,避免触发一些浏览器的自动填充而用户不知情
v4 展望
此版本预计会是 v3 系列最后一个有新功能的版本,后续在 v3 上只会进行 bugfix,作者精力将会聚焦到 v4 开发。
v4 预计将会带来这些新功能:
- RTP / RTSP / HTTP / HLS 任意互转(WebSocket / WebRTC 考虑中)
- 给 OpenWrt 以外的更多平台带来原生插件(爱快、飞牛、Home Assistant 等)
- 增强对反向代理的支持,解决目前在反代后运行出现的各种问题
- 跨平台支持(macOS / Windows):考虑到一些人使用 macOS 作为旁路由,还有一些人自己搭建 Windows NAS
敬请期待。
New Features
- Improved process lifecycle management, ensuring worker processes are restarted by the main process when they exit due to various errors
- Configuration hot reload support. The rtp2httpd main process now supports the following signals:
- SIGHUP: reload configuration file and re-fetch M3U/EPG (does not disconnect existing clients)
- SIGUSR1: force restart all worker processes (disconnects all connected clients)
- On OpenWrt, a pid file is now written to
/var/runafter startup for easy signal delivery- Example:
kill -HUP $(cat /var/run/rtp2httpd_*.pid)to trigger configuration hot reload
- Example:
- New "Service Control" section in the status panel, supporting config reload, worker restart, and log clearing
Bug Fixes
- Improved web player performance, enhancing UI responsiveness on some low-end devices (e.g., LG TVs)
- OpenWrt LuCI panel: r2h-token no longer uses a password-style input field, preventing some browsers from auto-filling without the user's knowledge
v4 Outlook
This version is expected to be the last v3 release with new features. Future v3 releases will only contain bug fixes as the author focuses on v4 development.
Planned v4 features:
- Arbitrary conversion between RTP / RTSP / HTTP / HLS (WebSocket / WebRTC under consideration)
- Native plugins for more platforms beyond OpenWrt (iKuai, fnOS, Home Assistant, etc.)
- Enhanced reverse proxy support, resolving various issues when running behind a reverse proxy
- Cross-platform support (macOS / Windows): for those using macOS as a sidecar router or self-hosting Windows NAS
Stay tuned.
| 如果这个项目对你有帮助,不妨请作者喝一杯咖啡 ☕️ |
|---|
v3.4.0
新功能
- OpenWrt 一键安装脚本:支持手动输入版本号,安装指定版本
- 网页播放器:
- 对于支持回看的频道,如果 EPG 没有内容,现在会用
精彩节目填充 - 通过 剪裁 mpegts.js,使 rtp2httpd 文件体积更小
- 全屏时自动关闭侧边栏
- 在支持的设备上(例如 iOS / macOS Safari),现在可以播放 AC-3 编码音频
- 优化键盘和遥控器操作体验
- 对于 LG 电视 webOS,用内置浏览器打开 rtp2httpd 网页播放器,可以算是目前 webOS 上最好的 IPTV 播放体验
- 目前支持的快捷键如下:
- 数字键:直接跳转频道号
- 回车 或
s:打开/关闭侧边栏 - 空格:播放/暂停
- 键盘上下方向键、
PageUp、PageDown、遥控器频道上下键:上下切换频道 - 键盘左右方向键:调整进度条(对于支持回看的频道)
Esc:显示进度条3秒f:切换全屏m:切换静音
- 对于支持回看的频道,如果 EPG 没有内容,现在会用
问题修复
- 修复 OpenWrt LuCI UI "自动重启" 选项无效问题
- 修复 IGMP Membership Report 未带上 Router Alert option 导致部分上游设备无法识别,组播周期重加入无效问题
- 修复对于特定地区 FCC 服务器(成都移动),无法收到单播流问题
New Features
- OpenWrt one-click installation script: now supports manually specifying a version number to install a specific version
- Web player:
- For channels with catchup support, if EPG has no content, it now fills with a placeholder program
- Reduced rtp2httpd binary size by trimming mpegts.js
- Sidebar automatically closes when entering fullscreen
- AC-3 encoded audio can now be played on supported devices (e.g., iOS / macOS Safari)
- Improved keyboard and remote control experience
- For LG TV webOS, opening the rtp2httpd web player in the built-in browser provides arguably the best IPTV playback experience on webOS
- Currently supported shortcuts:
- Number keys: jump directly to channel number
- Enter or
s: toggle sidebar - Space: play/pause
- Up/Down arrow keys,
PageUp,PageDown, remote channel up/down: switch channels - Left/Right arrow keys: adjust progress bar (for channels with catchup support)
Esc: show progress bar for 3 secondsf: toggle fullscreenm: toggle mute
Bug Fixes
- Fixed OpenWrt LuCI UI "Auto Restart" option not working
- Fixed IGMP Membership Report missing the Router Alert option, causing some upstream devices to fail recognition and periodic multicast rejoin to not work
- Fixed inability to receive unicast streams from certain regional FCC servers (e.g., Chengdu Mobile)
v3.3.2
- 修复偶发组播无法离开,一直持续接收组播流、持续占用带宽问题
- 周期性组播重加入现在会同时发出 IGMPv2 和 IGMPv3 Membership Report,解决上游仅支持 IGMPv2 时无法工作问题(此前只发送了 IGMPv3 Membership Report)
- 网页播放器:修复 M3U 只有 tvg-name 时,在特定 EPG 源下无法找到节目问题
- Fixed occasional failure to leave a multicast group, causing continuous multicast stream reception and persistent bandwidth usage
- Periodic multicast rejoin now sends both IGMPv2 and IGMPv3 Membership Reports, resolving issues when the upstream only supports IGMPv2 (previously only IGMPv3 was sent)
- Web player: fixed program lookup failure when M3U only has tvg-name with certain EPG sources
v3.3.1
- 为了保持兼容,不再对 8027 端口 FCC 服务器都默认使用华为协议交互。现在不指定 fcc-type 默认为电信协议,要使用华为协议必须手动指定
fcc-type=huawei - 修复 Docker arm64 / armv7 镜像
- For backward compatibility, FCC servers on port 8027 no longer default to the Huawei protocol. Without specifying fcc-type, the default is now the China Telecom protocol. To use the Huawei protocol, you must manually specify
fcc-type=huawei - Fixed Docker arm64 / armv7 images
v3.3.0
新功能
- 支持华为 FCC 协议
- 国内有四种 FCC 协议:电信(中兴)、华为 v1、华为 v2、烽火。此前 rtp2httpd 只实现了电信协议,这个版本新增了华为 v1 协议。
- 华为协议有更好的稳定性和 NAT 穿透能力。有些省份必须依赖 NAT 穿透才能使用 FCC(例如山西电信、山西联通)。
- 华为 IPTV 平台同时支持电信协议和华为协议。从这个版本开始,对所有 8027 端口 FCC 服务器都默认使用华为 v1 协议交互。
- 如果你遇到问题,可以使用
fcc-type参数手动指定协议类型,见文档 fcc-type 参数说明
- 支持
wget作为curl/uclient-fetch不存在时的替代工具 - 优化 Docker 镜像大小,用 alpine 作为 base,从 90 MB 缩减到 9 MB
问题修复
- 改进 M3U/EPG 更新失败时的重试逻辑,现在将会尝试尽快重试,而不是等下一个更新周期
- 解决了之前 rtp2httpd 随开机启动时,经历短暂无网状态导致无法及时拉取 M3U/EPG 问题
- 修复长时间运行可能随机崩溃问题
- 这个问题由 v3.2.0 引入,仅在使用外部 M3U 时发生
- 修复
/epg.xml.gz在一些播放器无法识别问题(例如酷9) - 修复状态面板的"断开"、"修改日志等级"有概率失败报错问题
- 调整网页播放器 RTSP 回放时的片段长度,改善对一些源的兼容性
New Features
- Huawei FCC protocol support
- There are four FCC protocols in China: Telecom (ZTE), Huawei v1, Huawei v2, and FiberHome. Previously rtp2httpd only implemented the Telecom protocol; this version adds Huawei v1.
- The Huawei protocol offers better stability and NAT traversal capability. Some provinces require NAT traversal to use FCC (e.g., Shanxi Telecom, Shanxi Unicom).
- Huawei IPTV platforms support both Telecom and Huawei protocols. Starting from this version, all FCC servers on port 8027 default to using the Huawei v1 protocol.
- If you encounter issues, you can manually specify the protocol type using the
fcc-typeparameter. See fcc-type parameter documentation
- Support for
wgetas a fallback whencurl/uclient-fetchis not available - Optimized Docker image size using alpine as base, reduced from 90 MB to 9 MB
Bug Fixes
- Improved retry logic when M3U/EPG updates fail — now retries as soon as possible instead of waiting for the next update cycle
- Resolves the issue where rtp2httpd started at boot could not fetch M3U/EPG in time due to brief network unavailability
- Fixed potential random crash during long-running operation
- This issue was introduced in v3.2.0 and only occurs when using an external M3U
- Fixed
/epg.xml.gznot being recognized by some players (e.g., Ku9) - Fixed intermittent failures when using "Disconnect" or "Change Log Level" in the status panel
- Adjusted RTSP playback segment length in the web player to improve compatibility with some sources