Releases: stackia/rtp2httpd
v3.0.2
- 默认设置 SO_RCVBUF 为 512KB,增强 4K 转发稳定性
- 改进对使用反向代理场景的支持,需要配置 hostname,具体见 公网访问建议
- 内置播放器的 EPG 节目单支持按照
tvg-name匹配
- Default SO_RCVBUF set to 512KB for improved 4K forwarding stability
- Improved reverse proxy support, requiring hostname configuration. See Public Access Guide
- Built-in player EPG program guide now supports matching by
tvg-name
v3.0.1
- 移除对
curl --compressed的要求,由于大多数 OpenWrt 安装的 curl 不支持--compressed - 优化 Web 播放器对 M3U 内绝对地址的处理
- LuCI UI 打开状态页、播放器的按钮,现在可以正确处理用户填写的 hostname
- Removed the requirement for
curl --compressed, as most OpenWrt curl installations do not support--compressed - Improved web player handling of absolute URLs in M3U
- LuCI UI buttons for opening the status page and player now correctly handle user-configured hostnames
v3.0.0
新功能
一键导入和转换 m3u
支持通过 --external-m3u 参数指定一个外部 M3U 文件,可自动识别节目并提供转换后的 M3U 播放列表(自动替换组播 URL、自动替换 UDPxy 格式 URL 的域名、自动替换 RTSP URL),方便在 IPTV 播放器中使用。
详细说明见 M3U 播放列表集成
内置 Web 播放器
内置了全新开发的 Web 播放器,支持在浏览器上播放直播、时移回放、节目单点播。需要配置 M3U 播放列表。
Web.Player.mp4
一键安装脚本优化、APK 支持
一键安装脚本新增支持镜像加速。也支持了一键更新,重新运行脚本可以一键更新到最新版。
从这个版本开始,我们的构建流程新增对 APK 包格式的支持。一键安装脚本现在能够自动识别 opkg/apk 并下载对应的包。
apk = Alpine Package Keeper,apk将在下一个 OpenWrt 正式版中替换掉opkg
分别指定组播、FCC、RTSP 上游接口
现在可以支持分别指定组播、FCC、RTSP 的上游接口。
如果你是从旧版本升级上来,需要重新在 LuCI UI 上配置一次上游接口!
RTP 乱序包、重复包过滤
部分地区的 RTP 组播存在重复发包、多倍发包的现象。rtp2httpd 现在转发时会过滤掉乱序包、重复包,可以改善在这些地方的使用体验。
问题修复
- "零拷贝发送"从强制开启改为了默认关闭,可以在配置中手动开启。
- 由于发现"零拷贝发送"的性能提升仅存在于理论层面,实际对比下来区别不大,甚至在很多设备上还有兼容性问题。
- rtp2httpd 已经不再要求 Linux 4.14+ 内核,现在可以在老内核上正常工作。
New Features
One-Click M3U Import and Conversion
Use the --external-m3u parameter to specify an external M3U file. rtp2httpd automatically identifies channels and provides a converted M3U playlist (auto-replacing multicast URLs, UDPxy-format URL domains, and RTSP URLs) for use in IPTV players.
See M3U Playlist Integration for details.
Built-in Web Player
A brand new built-in web player supporting live streaming, time-shifted playback, and EPG-based program selection in the browser. Requires M3U playlist configuration.
One-Click Installation Script Improvements & APK Support
The installation script now supports mirror acceleration and one-click updates — simply re-run the script to update to the latest version.
Starting from this version, the build pipeline supports the APK package format. The installation script can now automatically detect opkg/apk and download the appropriate package.
apk = Alpine Package Keeper—apkwill replaceopkgin the next OpenWrt stable release
Separate Upstream Interface Configuration for Multicast, FCC, and RTSP
You can now configure separate upstream interfaces for multicast, FCC, and RTSP.
If upgrading from an older version, you need to reconfigure the upstream interface in the LuCI UI!
RTP Out-of-Order and Duplicate Packet Filtering
Some regions experience duplicate or multiplied RTP multicast packets. rtp2httpd now filters out-of-order and duplicate packets during forwarding, improving the experience in these areas.
Bug Fixes
- "Zero-copy send" changed from forced-on to disabled by default; can be manually enabled in configuration.
- The performance improvement of zero-copy send was found to be theoretical only, with negligible real-world difference and compatibility issues on many devices.
- rtp2httpd no longer requires Linux 4.14+ kernel and now works on older kernels.
v2.7.4
- 请求 RTSP 流时,在 DESCRIBE 之前发送 OPTIONS 请求以符合 RTSP 规范
- Web UI 和 OpenWrt LuCI 插件文案修复
- 略微优化 CPU 占用和播放稳定性
- RTSP requests now send OPTIONS before DESCRIBE to comply with the RTSP specification
- Web UI and OpenWrt LuCI plugin text fixes
- Slightly improved CPU usage and playback stability
v2.7.3
- 改进 FCC 超时机制,现在:
- 请求 FCC 服务器若在 80ms 内未响应,将直接加入组播,放弃 FCC
- 当开始接受 FCC 单播媒体流后,超时时间调整为更宽容的 1s,避免高并发时短暂的流量波动触发超时
- 当 FCC 单播流持续 15 秒而未收到 FCC 服务器的同步通知时,将强制加入组播触发同步
- Improved FCC timeout mechanism:
- If the FCC server does not respond within 80ms, multicast join is initiated immediately, abandoning FCC
- After receiving FCC unicast media stream, the timeout is extended to a more forgiving 1s to avoid brief traffic fluctuations during high concurrency from triggering timeouts
- If FCC unicast stream continues for 15 seconds without receiving a sync notification from the FCC server, multicast join is forced to trigger sync
v2.7.2
v2.7.1
- 修复通过 IPv6 访问时,缓冲池无法被释放,导致播放一段时间后资源占满而卡死
- 修复在多个客户端访问同一个组播流时,周期性组播重加入不成功问题
- 修复 Web UI 工作进程统计里,"已发送"在客户端断开时清零问题
- Fixed buffer pool not being released when accessing via IPv6, causing resource exhaustion and freezing after prolonged playback
- Fixed periodic multicast rejoin failing when multiple clients access the same multicast stream
- Fixed "Sent" counter in Web UI worker statistics resetting to zero when a client disconnects
v2.7.0
- 全新的 Web UI 面板
- 新增配置项
--status-page-path用于自定义状态页地址 - 新增配置项
--fcc-listen-port-range用于设置 FCC 监听端口范围,用于把 rtp2httpd 运行在旁路由或其他设备,需要配合上级路由器端口转发使用 - 新的缓冲区调度策略,避免慢客户端拖死状态面板和其他客户端
- 支持带有 HTTP Basic Auth 的 RTSP 流,例如
http://192.168.1.1:5140/rtsp/admin:pass@192.168.1.100:554/live/stream1 - 修复 RTSP 播放 60 秒后自己断开的问题
- 修复客户端异常断开后(例如拔网线、休眠、锁屏等),资源一直不释放并导致缓冲区满问题
- 修复 r2h-token 带有 url encode 的字符时,校验失败问题
- Brand new Web UI panel
- New
--status-page-pathoption to customize the status page URL - New
--fcc-listen-port-rangeoption to set the FCC listening port range, for running rtp2httpd on a sidecar router or other devices (requires port forwarding on the upstream router) - New buffer scheduling strategy to prevent slow clients from blocking the status panel and other clients
- Support for RTSP streams with HTTP Basic Auth, e.g.,
http://192.168.1.1:5140/rtsp/admin:pass@192.168.1.100:554/live/stream1 - Fixed RTSP disconnecting after 60 seconds of playback
- Fixed resources not being released after abnormal client disconnection (e.g., unplugging network cable, sleep, screen lock), causing buffer exhaustion
- Fixed r2h-token validation failure when the token contains URL-encoded characters
v2.6.2
- 修复由于网络波动导致缓冲池耗尽时,客户端被意外断开问题
- 修复 RTSP 服务器选择 UDP 传输模式时,当禁用防火墙入站时无法收到媒体流问题
- 修复带有空格的 ffmpeg-args 无法从 config 文件完整解析的问题
- 对于视频快照,额外增加一种方式:请求 header 带上
X-Request-Snapshot: 1可以触发快照请求
- Fixed clients being unexpectedly disconnected when the buffer pool is exhausted due to network fluctuations
- Fixed inability to receive media streams when the RTSP server selects UDP transport mode with inbound firewall disabled
- Fixed ffmpeg-args with spaces not being fully parsed from the config file
- For video snapshots, added an alternative method: sending
X-Request-Snapshot: 1in the request header to trigger a snapshot request
v2.6.1
- 新增配置项
--mcast-rejoin-interval,在特定网络环境如果遇到组播断流,可尝试设置 - 不再限制 FCC 单播切换组播时 pending buffer 大小
- New
--mcast-rejoin-intervaloption; try setting this if you experience multicast stream interruptions in certain network environments - Removed the limit on pending buffer size during FCC unicast-to-multicast switching