Skip to content

Releases: stackia/rtp2httpd

v3.5.2

12 Dec 18:37
95cd751

Choose a tag to compare

  • 网页播放器:视频正常播放时,现在可以自动隐藏鼠标指针

v3.5.1

28 Nov 12:57
53d3e1b

Choose a tag to compare

  • 修复在 Docker 内,v3.5.0 worker 持续崩溃无法正常运行问题

v3.5.0

28 Nov 05:12
d7bf885

Choose a tag to compare

新功能

  • 优化程序的生命周期管理,确保工作进程因各种异常退出时,能够被主进程重启
  • 支持配置热重载。rtp2httpd 主进程现在支持以下信号:
    • SIGHUP: 重新加载配置文件、重新拉取 M3U/EPG(不会断开已经连接的客户端)
    • SIGUSR1: 强制重启所有工作进程(会断开所有已经连接的客户端)
  • 对于 OpenWrt,运行后会在 /var/run 下写入 pid 文件,方便用户输入信号
    • 例如:可以通过 kill -HUP $(cat /var/run/rtp2httpd_*.pid) 输入 SIGHUP 触发配置热重载
  • 在状态面板新增“服务控制”,目前支持重载配置、重启工作进程、清空日志
image

问题修复

  • 优化网页播放器性能,提升在一些低端设备上的 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

21 Nov 10:19
045d0aa

Choose a tag to compare

新功能

  • OpenWrt 一键安装脚本:支持手动输入版本号,安装指定版本
  • 网页播放器:
    • 对于支持回看的频道,如果 EPG 没有内容,现在会用 精彩节目 填充
    • 通过 剪裁 mpegts.js,使 rtp2httpd 文件体积更小
    • 全屏时自动关闭侧边栏
    • 在支持的设备上(例如 iOS / macOS Safari),现在可以播放 AC-3 编码音频
    • 优化键盘和遥控器操作体验
      • 对于 LG 电视 webOS,用内置浏览器打开 rtp2httpd 网页播放器,可以算是目前 webOS 上最好的 IPTV 播放体验
      • 目前支持的快捷键如下:
        • 数字键:直接跳转频道号
        • 回车 或 s:打开/关闭侧边栏
        • 空格:播放/暂停
        • 键盘上下方向键、PageUpPageDown、遥控器频道上下键:上下切换频道
        • 键盘左右方向键:调整进度条(对于支持回看的频道)
        • Esc:显示进度条3秒
        • f:切换全屏
        • m:切换静音

问题修复

  • 修复 OpenWrt LuCI UI “自动重启” 选项无效问题
  • 修复 IGMP Membership Report 未带上 Router Alert option 导致部分上游设备无法识别,组播周期重加入无效问题
  • 修复对于特定地区 FCC 服务器(成都移动),无法收到单播流问题

v3.3.2

19 Nov 14:45
d36f1ef

Choose a tag to compare

  • 修复偶发组播无法离开,一直持续接收组播流、持续占用带宽问题
  • 周期性组播重加入现在会同时发出 IGMPv2 和 IGMPv3 Membership Report,解决上游仅支持 IGMPv2 时无法工作问题(此前只发送了 IGMPv3 Membership Report)
  • 网页播放器:修复 M3U 只有 tvg-name 时,在特定 EPG 源下无法找到节目问题

v3.3.1

13 Nov 10:45
b0af077

Choose a tag to compare

  • 为了保持兼容,不再对 8027 端口 FCC 服务器都默认使用华为协议交互。现在不指定 fcc-type 默认为电信协议,要使用华为协议必须手动指定 fcc-type=huawei
  • 修复 Docker arm64 / armv7 镜像

v3.3.0

12 Nov 17:20
8e008e3

Choose a tag to compare

新功能

  • 支持华为 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

11 Nov 08:01
55db418

Choose a tag to compare

  • 调整 shared memory 映射方式,支持在光猫上运行

v3.2.1

11 Nov 02:55
801c23b

Choose a tag to compare

  • 修复第二次更新 M3U 时程序崩溃问题
  • 修复网页播放器静音按钮有些时候点了没反应问题
  • 优化网页播放器的初始化加载速度

v3.2.0

09 Nov 12:35
3fca0d6

Choose a tag to compare

新功能

  • 支持使用 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 小时
  • 修复随开机启动时,因可能暂时没有网络而导致外部 M3U 拉取失败,程序直接崩溃问题
  • 修复网页播放器 EPG 节目单只显示 3 天数据问题,现在可以正确显示所有日期的节目
  • 修复无法解析 rtp2httpd.conf 中 = 左右不带空格的写法(例如 key=value
  • 修复上游超时、报错时,未给客户端发送 HTTP 状态码而直接断开连接问题