Skip to content

Releases: stackia/rtp2httpd

v3.8.2

03 Feb 11:05
df673de

Choose a tag to compare

  • 修复上个版本中,有概率客户端被错误标记为断开连接并无法正确清理资源问题
  • HTTP 代理现在可以改写 m3u,把其中所有 URL 都改写为经过 rtp2httpd 代理的地址,确保 HLS 能正常播放
  • 修复 OpenWrt LuCI UI 中缺少部分文本中文翻译问题 by @yaoyao5128

v3.8.1

03 Feb 07:00
1ed6887

Choose a tag to compare

v3.8.1 Pre-release
Pre-release

这个版本还是存在一些严重 bug,将会稍后在后续版本修复,暂不建议更新

  • 修复 v3.8.0 中客户端断开连接时,资源未能清理问题
  • HTTP 代理现在可以正确处理 30x 重定向,自动把 Location 改写为经过代理的地址

v3.8.0

02 Feb 21:21
591e29f

Choose a tag to compare

v3.8.0 Pre-release
Pre-release

这个版本存在一些严重 bug,将会稍后在后续版本修复,暂不建议更新

新功能

问题修复

  • 经转换的 playlist.m3u,其中 EPG URL 优先使用压缩版本 /epg.xml.gz(原先写死了 /epg.xml 导致一些客户端加载性能不佳) by @mjl371

文档

  • 新增 性能测试报告,对比了 rtp2httpd / msd_lite / udpxy / tvgate 在常见和极限场景下的性能。

v3.7.0

27 Jan 08:38
2d77067

Choose a tag to compare

新功能

  • 新增配置项 udp-rcvbuf-size 用于手动指定 UDP 接收缓冲区大小(默认 512KB)
    • 频繁遇到丢包花屏可以尝试增大这个选项
    • 需要以 root 权限运行才有效(对于 Docker,需要指定 --cap-add=NET_ADMIN
    • 在 OpenWrt LuCI UI 也新增了这个选项 UDP 接收缓冲区大小
  • 新增 RTP 乱序包重排能力,改善一些网络环境下的乱序包花屏问题
    • 开箱即用,无需任何配置
  • 新增 FEC 前向纠错功能,在 URL 上指定 ?fec=<端口> 来启用
    • 有些运营商支持 FEC 前向纠错,用户观看一个频道时,同时接收两个组播流,一个组播流负责发送 RTP 包,另一个组播流负责发送 FEC 冗余包,当 RTP 流丢包时,可以利用 FEC 流进行恢复。
    • FEC 流和 RTP 流使用相同的组播 IP,不同的端口。抓包出来的 ChannelFECPort 就是 FEC 端口。
    • 由于不同运营商的 FEC 纠错算法有差异,未必能支持所有 FEC 算法,如遇问题请提 issue 反馈(需提供抓包文件)
    • URL 示例:http://<ip>:<port>/rtp/239.253.64.120:5140?fcc=10.255.14.152:8027&fcc-type=huawei&fec=5142
  • 一键安装脚本:使用 OpenWrt 自带的 uclient-fetch 代替 curl 避免一些人没有安装 curl 导致脚本失败

问题修复

  • 修复转换后的 playlist.m3u 未在 EPG URL 带上 r2h-token,导致 EPG 加载失败 by @mjl371
  • Web 状态面板不再对每个客户端 URL 重复显示 r2h-token=xxxx,保持 UI 清爽

v3.6.2

09 Jan 04:15
1a5acaf

Choose a tag to compare

  • 网页播放器:频道 logo 图片加载使用 no-referrer policy,避免一些网站的防盗链设置导致图片加载失败
  • 修复在非常罕见的情况下,RTSP 连接会卡在 RTSP 完成 TEARDOWN 状态且一直不会释放
  • 设置 UDP RCVBUF 时,尝试使用 SO_RCVBUFFORCE 以突破一些固件的默认内核参数 net.core.rmem_max 限制,可以改善 4K 视频流偶尔花屏马赛克问题
  • 修复对于一些特殊的 RTSP 上游,断开连接时出现 RTSP: Socket event handling failed 报错

v3.6.1

31 Dec 04:47
2322a9f

Choose a tag to compare

  • 兼容之前的 hostname 配置行为,即当配置了 https://your-domain.com 时,生成的 m3u 内的频道地址会使用 https 而不是默认的 http

v3.6.0

30 Dec 16:38
eb78098

Choose a tag to compare

新功能

  • 新增 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

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

敬请期待。

如果这个项目对你有帮助,不妨请作者喝一杯咖啡 ☕️