Releases: stackia/rtp2httpd
Releases · stackia/rtp2httpd
v3.7.0
新功能
- 新增配置项
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
- 网页播放器:频道 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
v3.6.0
新功能
- 新增 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
v3.5.1
v3.5.0
新功能
- 优化程序的生命周期管理,确保工作进程因各种异常退出时,能够被主进程重启
- 支持配置热重载。rtp2httpd 主进程现在支持以下信号:
- SIGHUP: 重新加载配置文件、重新拉取 M3U/EPG(不会断开已经连接的客户端)
- SIGUSR1: 强制重启所有工作进程(会断开所有已经连接的客户端)
- 对于 OpenWrt,运行后会在
/var/run下写入 pid 文件,方便用户输入信号- 例如:可以通过
kill -HUP $(cat /var/run/rtp2httpd_*.pid)输入 SIGHUP 触发配置热重载
- 例如:可以通过
- 在状态面板新增“服务控制”,目前支持重载配置、重启工作进程、清空日志
问题修复
- 优化网页播放器性能,提升在一些低端设备上的 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
新功能
- OpenWrt 一键安装脚本:支持手动输入版本号,安装指定版本
- 网页播放器:
- 对于支持回看的频道,如果 EPG 没有内容,现在会用
精彩节目填充 - 通过 剪裁 mpegts.js,使 rtp2httpd 文件体积更小
- 全屏时自动关闭侧边栏
- 在支持的设备上(例如 iOS / macOS Safari),现在可以播放 AC-3 编码音频
- 优化键盘和遥控器操作体验
- 对于 LG 电视 webOS,用内置浏览器打开 rtp2httpd 网页播放器,可以算是目前 webOS 上最好的 IPTV 播放体验
- 目前支持的快捷键如下:
- 数字键:直接跳转频道号
- 回车 或
s:打开/关闭侧边栏 - 空格:播放/暂停
- 键盘上下方向键、
PageUp、PageDown、遥控器频道上下键:上下切换频道 - 键盘左右方向键:调整进度条(对于支持回看的频道)
Esc:显示进度条3秒f:切换全屏m:切换静音
- 对于支持回看的频道,如果 EPG 没有内容,现在会用
问题修复
- 修复 OpenWrt LuCI UI “自动重启” 选项无效问题
- 修复 IGMP Membership Report 未带上 Router Alert option 导致部分上游设备无法识别,组播周期重加入无效问题
- 修复对于特定地区 FCC 服务器(成都移动),无法收到单播流问题