From 1ca24b61a83b8c5d9297ee1efa8e226e3f9bc825 Mon Sep 17 00:00:00 2001 From: CGH0S7 <776459475@qq.com> Date: Mon, 16 Mar 2026 15:57:08 +0800 Subject: [PATCH] Added README.md with project overview and setup instructions --- README.md | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..6d6e1a5 --- /dev/null +++ b/README.md @@ -0,0 +1,65 @@ +# Hightube - 开源跨平台个人直播平台 + +Hightube 是一个为网络应用开发课程设计的开源直播平台大作业。它支持用户注册登录、拥有个人专属直播间、推流鉴权以及多端同步观看功能。 + +## 🚀 项目特性 + +- **跨平台支持**: 基于 Flutter 实现,支持 Windows, Linux, Android 和 Web。 +- **高性能后端**: 使用 Go 语言编写,利用 Goroutine 处理高并发流媒体连接。 +- **推拉流分离**: + - 主播使用私密 `Stream Key` 进行 RTMP 推流。 + - 观众通过公开 `Room ID` 进行拉流观看,保护主播隐私。 +- **轻量级存储**: 使用 SQLite 数据库,无需复杂的环境配置。 +- **安全鉴权**: 基于 JWT (JSON Web Token) 的用户认证系统。 + +## 🏗 项目架构 + +项目采用前后端分离的工程结构: + +- `/backend`: Go 实现的流媒体服务器与业务 API。 +- `/frontend`: Flutter 实现的跨平台客户端。 +- `/docs`: 项目设计文档与开发进度记录。 + +### 技术栈 + +| 模块 | 技术选型 | +| :--- | :--- | +| **前端** | Flutter (Dart) | +| **后端** | Go (Golang), Gin, GORM | +| **流媒体** | RTMP 协议 (基于 joy4 库) | +| **数据库** | SQLite | +| **认证** | JWT, Bcrypt | + +## 🛠 快速开始 (后端) + +### 1. 环境准备 +- Go 1.20+ +- 如果你在受限网络环境下,请确保配置好代理。 + +### 2. 运行服务端 +```bash +cd backend +go run cmd/server/main.go +``` +服务端将同时启动: +- **API 服务**: `http://localhost:8080` +- **RTMP 服务**: `rtmp://localhost:1935` + +### 3. 测试推流 +1. 调用 `/api/register` 注册账号。 +2. 调用 `/api/login` 获取 Token。 +3. 调用 `/api/room/my` 获取你的 `stream_key`。 +4. 在 OBS 中设置服务器为 `rtmp://localhost:1935/live`,推流码填入你的 `stream_key`。 +5. 使用 VLC 播放 `rtmp://localhost:1935/live/{your_room_id}` 观看直播。 + +## 📅 开发路线图 (Roadmap) + +- [x] **Phase 1**: 基础 RTMP 推拉流功能实现。 +- [x] **Phase 2**: 数据库集成、用户鉴权与推流密钥校验。 +- [ ] **Phase 3**: Flutter 客户端基础架构与直播列表展示。 +- [ ] **Phase 4**: 实时评论系统 (WebSocket) 与弹幕功能。 +- [ ] **Phase 5**: 客户端原生推流支持与 UI/UX 优化。 + +## 📜 许可证 + +本项目采用 MIT 许可证开源。