Skip to content

Releases: stackia/rtp2httpd

v3.9.1

19 Feb 06:09
d1bb125

Choose a tag to compare

  • 回滚 转换后的 playlist.m3u,其中的 URL 将不再进行 URL encode,这样有更好的可读性,现在还是保持 URL encode,因为发现有些播放器存在兼容问题

v3.9.0

18 Feb 22:12
300aa2b

Choose a tag to compare

新功能

1. 网页播放器:支持将相同频道多个源聚合起来,显示为单个频道+多条线路

例如,对于下面这段 m3u,三个不同清晰度的源,将会聚合为一个频道显示在列表中,并可以切换清晰度

#EXTINF:-1 tvg-id="广东卫视" tvg-name="广东卫视" tvg-logo="https://upload.112114.xyz/logo/广东卫视4K.png" group-title="卫视",广东卫视
rtp://239.253.64.96:5140/?fcc=10.255.75.73:15970$超高清
#EXTINF:-1 tvg-id="广东卫视" tvg-name="广东卫视" tvg-logo="https://upload.112114.xyz/logo/广东卫视.png" group-title="卫视",广东卫视
rtp://239.253.64.200:5140/?fcc=10.255.75.73:15970$高清
#EXTINF:-1 tvg-id="广东卫视" tvg-name="广东卫视" tvg-logo="https://upload.112114.xyz/logo/广东卫视.png" group-title="卫视",广东卫视
rtp://239.253.64.44:5140/?fcc=10.255.75.73:15970$标清
image

详细文档见:https://github.com/stackia/rtp2httpd/blob/main/docs/m3u-integration.md#线路标签

2. 网页播放器:频道列表显示当前正在播放的节目

频道列表现在会显示每个频道正在播放的节目,一目了然!

image

3. 网页播放器:手机端可添加到桌面,UI 尺寸优化(频道分组、搜索框更紧凑)

例如,在 iOS 使用 Safari 打开网页浏览器,点击右下角三个点 -> 分享 -> 添加到主屏幕,可以把网页播放器变成类似 app 一般的体验。

ScreenRecording_02-19-2026.5-49-16.AM_1.MP4

问题修复

  • 修复“组播周期性重加入”功能在 IGMPv2-only 交换机下无效问题 by @tuzkiyoung
  • 对于一些运营商,即便使用 RTSP TCP 传输模式,服务器也会在一段时间后主动断开连接(例如上海电信)。所以 rtp2httpd 现在也会定期发送 keep alive 请求来避免服务器会话超时断开连接。
    • 之前版本只在 UDP 传输模式下发送 keep alive,现在无论 TCP/UDP 模式都会发送
  • 修复 m3u 转换时,catchup-source 在 append 模式下,在一些情况下不能正确拼接问题(例如用户错误使用了 catchup-source="?playseek=xxx",但实际期望的拼接符号是 &)。现在会智能选择 &? 作为 catchup-source 开头,保证最终 URL 是合法的。
  • 转换后的 playlist.m3u,其中的 URL 将不再进行 URL encode,这样有更好的可读性
  • 经过反代的 HTTP URL 现在也会在 playlist.m3u 中以服务名替代完整 URL(和 RTP/RTSP 保持一致)
  • 网页播放器:修复在回看时,因为解码失败或网络波动导致重连时,播放进度丢失问题

v3.8.3

04 Feb 11:11
eef015d

Choose a tag to compare

  • 修复 RTSP UDP 传输模式下,客户端断开连接时进程崩溃问题
  • 修复使用前置反代时,如果只转发了 X-Forwarded-Proto: https 但没有转发 X-Forwarded-Host 时,https 未生效问题
  • 网页播放器:增加 PWA manifest,支持通过浏览器安装到桌面

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