Releases: stackia/rtp2httpd
Releases · stackia/rtp2httpd
v3.14.2
v3.14.1
新功能
- 支持写入 访问日志 到文件,便于审计和对接外部日志系统
- 支持自定义 Web 资源前缀 app-path-prefix
- 指定前缀后,所有资源和媒体地址(包括
/status,/player,/playlist.m3u,/epg.xml等)都需要加上前缀访问 - 典型场景:通过前置反代或网关,根据不同的前缀路由到不同应用,此时可配合 app-path-prefix 选项使用
- 指定前缀后,所有资源和媒体地址(包括
- 支持 监听 Unix Socket,便于和其他程序互操作
- 新增配置项 use-relative-path-in-m3u,开启后,rtp2httpd 生成的 m3u 内的 URL 将省略 http://host/ 前缀
- 适用于前置反代场景,但由于各种原因反代无法正常传入 X-Forwarded-* 头,rtp2httpd 无法得知自身完整地址
- 内置网页播放器已适配,但一些第三方播放器不兼容这种 m3u
- 网页播放器:支持单频道多分组(在 m3u group-title 使用分号分隔多个组名,例如
group-title="央视;高清")
问题修复
- 网页播放器:移除
MP2 音频软解开关,默认开启软解- 由于 Chrome 149.0.7827.197 将音频引擎从 FFmpeg 切换到了 Symphonia,导致此版本以及未来版本无法正常原生解码 MP2 音频(包括 PC / Mac / Android),因此决定移除此开关,以后只使用内置 WASM 软解方式。
- 网页播放器:优化 MP2 软解表现,响应更快,更少毛刺,音画更同步
- 网页播放器:修复偶然报错
The play() request was interrupted by a new load request.
New Features
- Added support for writing access logs to a file for auditing and integration with external logging systems
- Added a configurable web resource prefix via app-path-prefix
- When a prefix is set, all resources and media endpoints (including
/status,/player,/playlist.m3u,/epg.xml, and others) must be accessed with that prefix - Typical use case: routing different applications through a reverse proxy or gateway by path prefix
- When a prefix is set, all resources and media endpoints (including
- Added support for listening on a Unix socket for easier inter-process integration
- Added the use-relative-path-in-m3u option; when enabled, URLs in generated M3U playlists omit the
http://host/prefix- Useful in reverse-proxy setups where
X-Forwarded-*headers are unavailable and rtp2httpd cannot determine its own public URL - The built-in web player supports this format, but some third-party players do not
- Useful in reverse-proxy setups where
- Web player: added support for multiple groups per channel (use semicolons in M3U
group-title, e.g.group-title="CCTV;HD")
Bug Fixes
- Web player: removed the
MP2 audio soft decodetoggle; soft decoding is now always enabled- Chrome 149.0.7827.197 switched its audio engine from FFmpeg to Symphonia, breaking native MP2 decoding on PC, Mac, and Android in this and future versions; the toggle was removed in favor of the built-in WASM soft decoder
- Web player: improved MP2 soft decoding with faster startup, fewer glitches, and better A/V sync
- Web player: fixed intermittent
The play() request was interrupted by a new load request.errors
| 如果这个项目对你有帮助,不妨请作者喝一杯咖啡 ☕️ |
|---|
v3.14.0
v3.13.5
此版本仅包含以下针对网页播放器的改进:
- 修复在特定硬件上开启无缝换台后,快速连续换台导致 Chrome 媒体管线卡住,后续切换新频道都无法播放,必须重启 Chrome 问题
- 修复 iOS 上切换频道总是弹出“需要用户交互才能播放”的问题
- 优化在未配置 M3U 时的错误提示,引导用户前往官网教程
This release only includes the following web player improvements:
- Fixed an issue on certain hardware where enabling seamless channel switching and rapidly switching channels could stall Chrome's media pipeline, leaving all subsequent channels unplayable until Chrome was restarted
- Fixed channel switches on iOS always triggering the "user interaction required to play" prompt
- Improved the error message when no M3U playlist is configured, with guidance pointing users to the official tutorial
v3.13.4
此版本仅包含以下针对网页播放器的改进:
- 修复 16:9 视频在一些特定窗口大小下的比例和位置问题
- 修复开启无缝切换时,在多个频道间快速切换,中间还是会出现黑屏问题
- 修复多次频道切换后,有可能整个播放器无响应,后续切换任何频道都黑屏问题
- 优化台标 logo 在浅色主题下的显示效果
- 现在能够在刷新页面后,保留之前调整过的音量和静音状态
- 新增:视频左上角显示当前系统时间
This release only includes the following web player improvements:
- Fixed aspect ratio and positioning for 16:9 video at certain window sizes
- Fixed black screens that could still appear when rapidly switching channels with seamless switching enabled
- Fixed the player becoming unresponsive after multiple channel switches, leaving all subsequent channels black
- Improved channel logo visibility in light theme
- Volume and mute settings now persist after page refresh
- Added system time display in the top-left corner of the video
v3.13.3
- 网页播放器:新增无缝换台功能,开启后切换频道时中间没有黑屏,无缝切换(默认开启)
- 由于在换台过程中短暂存在两路视频同时拉流的情况,如果你的带宽比较小(公网访问时),或是上游只支持单路组播,导致换台出现卡顿,可以手动关闭这个选项
- 网页播放器:修复 HLS 模式下,对于一些特定的编码的 TS 片段,播放可能卡住的问题
- 网页播放器:修复 HLS 模式下,“返回直播”按钮点击后报错或时间错乱问题
- 网页播放器:修复在 iPhone Edge 或 iPad上,未能自动检测并启用“MP2 音频软解”选项的问题
- Web player: added seamless channel switching; when enabled, channel changes no longer show a black screen in between (enabled by default)
- Because switching may briefly pull two video streams at once, you can manually disable this option if you have limited bandwidth over the public internet, or if your upstream only supports a single multicast stream and channel switching becomes choppy
- Web player: fixed HLS playback that could stall on TS segments with certain encodings
- Web player: fixed the "Go Live" button in HLS mode causing errors or timeline glitches after click
- Web player: fixed MP2 software-decoded audio not being auto-detected and enabled on iPhone Edge or iPad
v3.13.2
v3.13.1
- 网页播放器:修复 Chrome 上报错
Failed to execute 'addSourceBuffer' on 'MediaSource'问题 - 网页播放器:优化在 iOS 上 MP2 音频软解的播放表现,减少毛刺感
- Web player: fixed the Chrome error
Failed to execute 'addSourceBuffer' on 'MediaSource' - Web player: improved MP2 software-decoded audio playback on iOS to reduce audio glitches
v3.13.0
新功能
- 新增爱快(iKuai)原生应用市场安装包
- 可以直接在爱快路由器上原生运行 rtp2httpd
- 安装包提供与 OpenWrt LuCI 接近的配置项,覆盖监听地址、上游接口、外部 M3U、认证、CORS 等常用设置
- 即将上架官方应用市场,敬请期待
- 支持 IPv6 / 双栈上游访问
- HTTP 代理、RTSP TCP 上游、M3U / HLS playlist 改写、Host 校验、监听地址和 LuCI 配置均已支持 IPv6 地址
- 上游地址为域名时,会按系统解析顺序依次尝试 IPv6 / IPv4 地址,连接失败后自动回退
- 注意:FCC 和
mcast-rejoin-interval暂不支持 IPv6 场景
- OpenWrt LuCI UI 支持配置多个监听地址
- 现在可以单实例同时监听多个地址 / 端口,例如 IPv4、IPv6 或不同网卡地址
- 旧的单端口配置会在 LuCI 保存时自动迁移
r2h-seek-offset支持分别调整回看开始 / 结束时间- 现在可以使用
r2h-seek-offset=12,-12这类格式分别偏移开始和结束边界 - 原来的单值写法仍然保持兼容
- 现在可以使用
- 网页播放器:重构内置播放链路,改善 HLS 播放兼容性
- HLS 直播 / 点播现在统一走内置 MSE 播放链路,不再依赖浏览器原生 HLS 支持
- 改善 iOS Safari 下启动卡在首帧、直播追帧反复缓冲、前后台切换后无法恢复等问题
- 支持锁屏 / 控制中心的播放暂停控制,显示频道名称和台标
问题修复
- 修复部分运营商 RTSP 节点在 OPTIONS 阶段返回
Session后,DESCRIBE 未带上该Session导致 RTSP 单播播放失败的问题 - 修复状态面板 SSE 日志时间戳在部分 32 位平台可能输出错误的问题
- 加强 RTP 畸形包边界检查,避免异常包触发越界读取
- 网页播放器:修复部分运营商直播或回看流在拼接点出现时间戳回退时,可能导致 MSE 缓冲区异常并黑屏的问题
- 网页播放器:修复某些 AAC 数据残留可能影响后续 PES 解析的问题
这个版本里许多复杂功能和 bug 修复都借助 Claude Fable 5 完成,Token 费用十分昂贵。如果这些更新对你有帮助,不妨请作者喝一杯咖啡 ☕️
New Features
- Added a native iKuai app market package
- rtp2httpd can now run directly on iKuai routers without Docker Compose
- The package provides LuCI-equivalent configuration fields for common settings, including listen addresses, upstream interfaces, external M3U, authentication, CORS, FFmpeg snapshots, and more
- Coming soon to the official iKuai app market
- Added IPv6 / dual-stack upstream support
- IPv6 addresses are now supported in the HTTP proxy, RTSP TCP upstreams, M3U / HLS playlist rewriting, Host validation, listen addresses, and LuCI configuration
- When an upstream hostname resolves to multiple IPv6 / IPv4 addresses, rtp2httpd tries them in system resolver order and automatically falls back on connection failure
- Note: FCC and
mcast-rejoin-intervalare not supported for IPv6 scenarios yet
- OpenWrt LuCI now supports multiple listen addresses
- rtp2httpd can listen on multiple addresses / ports, such as IPv4, IPv6, or different network interfaces
- Existing single-port configurations are migrated automatically when saved in LuCI
r2h-seek-offsetnow supports independent begin / end offsets- You can now use formats such as
r2h-seek-offset=12,-12to adjust the catchup begin and end boundaries separately - The existing single-value format remains compatible
- You can now use formats such as
- Web player: refactored the built-in playback pipeline and improved HLS playback compatibility
- HLS live / VOD playback now uses the unified built-in MSE pipeline, reducing reliance on browser-native HLS behavior
- Improved iOS Safari reliability, including first-frame startup stalls, live-edge rebuffer loops, and background / foreground recovery
- Added lock screen / control center play-pause support, with channel name / logo
Bug Fixes
- Fixed RTSP unicast playback failures against some ISP RTSP nodes that return a
Sessionduring OPTIONS and expect DESCRIBE to echo it - Fixed incorrect SSE log timestamp output on some 32-bit platforms
- Hardened RTP malformed packet bounds checks to avoid out-of-bounds reads
- Web player: fixed black screen / MSE buffer corruption that could happen when some ISP live or catchup streams contain timestamp regressions at splice points
- Web player: fixed stale AAC data that could affect subsequent PES parsing
v3.12.2
- 修复较长的播放 / 回看地址可能被截断的问题
- M3U 中较长的内联 URL,以及带有较多参数的 HTTP / RTSP 地址,现在可以正常解析和转发
- 修复 HTTP 代理在改写较大的 M3U / HLS playlist 时,可能没有完整读取内容,导致部分回看节目无法播放的问题
- 例如部分较长时长的回看节目,之前可能会显示网络异常或播放失败
- Fixed an issue where long playback / catchup URLs could be truncated
- Long inline URLs in M3U, as well as HTTP / RTSP URLs with many parameters, can now be parsed and proxied correctly
- Fixed an issue where the HTTP proxy might not fully read large M3U / HLS playlists during rewrite, causing some catchup programs to fail playback
- For example, some longer catchup programs could previously show a network error or fail to play