v2.0.0
v2.0.0 是一个里程碑版本,带来了全面的架构重构和重大功能更新。本版本相比 v1.1.1 实现了质的飞跃,新增 RTSP 协议支持、引入现代化的测试框架、大幅优化性能,并显著增强了代码质量和可维护性。
AI 在本项目编写中起了至关重要的作用。
🎯 重大新功能
🌟 RTSP 流支持(核心特性)
v2.0.0 的最大亮点是完整实现了 RTSP/RTP 协议栈,使 rtp2httpd 成为一个真正的多协议流媒体网关:
- 完整的 RTSP 客户端实现:支持 DESCRIBE、SETUP、PLAY、TEARDOWN 等标准 RTSP 方法
- 双传输模式支持:
- RTP over UDP(标准模式)
- RTP over TCP(适用于受限网络环境)
- 智能会话管理:自动处理 RTSP 会话生命周期,包括超时重连和资源清理
- 时区兼容性:新增完整的时区处理模块,支持 IPTV 时移回看功能
- 应用场景:
- 将 IPTV RTSP 时移源转换为 HTTP 流进行回看
- 将家庭网络摄像机的 RTSP 流转换为 HTTP 流,方便在 IPTV 播放器中观看
- 统一各类流媒体源到 HTTP 协议
⚡ 性能优化与现代化
- 优化编译标志:新增
-O3优化选项支持,显著提升运行效率 - 缓冲区管理:引入
buffer_config.h统一管理各类缓冲区配置 - 内存优化:重构数据结构,减少内存占用和碎片
- 网络优化:
- 启用
TCP_NODELAY,降低延迟 - 优化组播绑定逻辑,提升稳定性
- 启用
🧪 测试与质量保障
建立了完整的自动化测试体系,大幅提升代码质量。
📦 架构重构
模块化设计
将原有的单体代码重构为清晰的模块化架构:
| 模块 | 文件 | 功能描述 |
|---|---|---|
| HTTP 处理 | http.c/h |
HTTP 协议处理、请求解析、响应生成(1150+ 行全新代码) |
| RTSP 客户端 | rtsp.c/h |
RTSP 协议实现、会话管理(1057+ 行全新代码) |
| 流管理 | stream.c/h |
统一的流抽象层、多协议支持(377+ 行全新代码) |
| FCC 快速换台 | fcc.c/h |
FCC 协议实现、NAT 穿透(637+ 行全新代码) |
| 组播支持 | multicast.c/h |
组播订阅、接口绑定(110+ 行全新代码) |
| RTP 处理 | rtp.c/h |
RTP 包解析、验证(99+ 行全新代码) |
| 时区处理 | timezone.c/h |
时区转换、时移支持(448+ 行全新代码) |
| 配置管理 | configuration.c/h |
配置解析、参数验证(重构 286 行) |
代码质量提升
- 代码规范:严格遵循 C99 标准,启用全面的编译警告
- 错误处理:完善的错误处理和资源清理机制
- 调试支持:增强的日志系统,支持多级别详细输出
- 文档完善:
- 更新
README文档(+389 行) - 新增
TESTING.md测试文档 - 完善命令行参数文档
- 更新
🚀 OpenWrt 支持增强
LuCI 界面改进
- 配置选项扩展:支持所有新增配置参数
- 国际化支持:完善中英文语言包
- ACL 权限优化:细化权限控制
- 启动脚本增强:支持配置文件加载
打包优化
- 依赖更新:优化依赖关系
- 多架构支持:完善各架构编译配置
- CI/CD 自动化:自动构建 IPK 包
🔄 兼容性说明
向后兼容
- ✅ 完全兼容原有 RTP/UDP 转发功能
- ✅ 保持 UDPxy URL 格式兼容
- ✅ 命令行参数向下兼容
新增特性
- ✨ RTSP 流支持(全新功能)
- ✨ 配置文件支持(可选)
升级建议
- 直接升级:v1.1.1 用户可直接升级,无需修改配置
- 功能探索:尝试新的 RTSP 流转发功能
🐛 问题修复
- 修复 RTP 包验证逻辑,增强稳定性
- 改进组播接口绑定,解决多网卡环境下的问题
- 优化内存管理,修复潜在内存泄漏
- 完善错误处理,提升异常情况下的鲁棒性