Releases: stackia/rtp2httpd
Releases · stackia/rtp2httpd
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
敬请期待。
| 如果这个项目对你有帮助,不妨请作者喝一杯咖啡 ☕️ |
|---|
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 服务器(成都移动),无法收到单播流问题
v3.3.2
v3.3.1
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 回放时的片段长度,改善对一些源的兼容性
v3.2.2
v3.2.1
v3.2.0
新功能
- 支持使用
uclient-fetch作为未安装curl时的替代uclient-fetch在 OpenWrt 默认已自带,是非常轻量的curl替代品
- 转换后的 M3U (
/playlist.m3u) 和 EPG (/epg.xml.gz) 支持 ETag 缓存协商 - 网页播放器新增画中画模式
- 网页播放器新增强制 16:9 画面比例选项
- 考虑到国内标清频道强行把 16:9 画面缩放到 4:3,这个选项默认设置为开启
- 优化网页播放器前端资源内嵌方式,binary 体积减小 18%
- 目前 x86_64 binary 为 308 KB,剔除前端资源后仅为 138 KB
- 作为对比,msd_lite 是 148 KB,udpxy 是 71 KB,其他同类 Go 或 Rust 编写的程序则是几 MB 起步
- rtp2httpd 在很小的体积内,实现了丰富的功能和优于 msd_lite 的性能
- 这是启用
-O3(性能优化)而非-Os(体积优化)的编译结果 - 以上陈述,是为了打破一些人认为 rtp2httpd 加入播放器导致臃肿、性能变差的观点
- 事实上追求体积更小是没多少意义的,大多数用来折腾的路由器普遍 CPU、内存、闪存性能过剩
问题修复
- 修复由于周期性 IGMP Membership Report 未设置 Router Alert 选项,导致在 omcproxy 下无法工作问题
- 修复在 rtp2httpd.conf 配置中直接编写带有
x-tvg-url的 M3U 时,EPG 不能定时自动更新问题- EPG 的更新周期和 M3U 一样,由
external-m3u-update-interval配置项控制 external-m3u-update-interval的默认值已由 24 小时调整为 2 小时
- EPG 的更新周期和 M3U 一样,由
- 修复随开机启动时,因可能暂时没有网络而导致外部 M3U 拉取失败,程序直接崩溃问题
- 修复网页播放器 EPG 节目单只显示 3 天数据问题,现在可以正确显示所有日期的节目
- 修复无法解析 rtp2httpd.conf 中
=左右不带空格的写法(例如key=value) - 修复上游超时、报错时,未给客户端发送 HTTP 状态码而直接断开连接问题