Added README.md with project overview and setup instructions
This commit is contained in:
65
README.md
Normal file
65
README.md
Normal file
@@ -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 许可证开源。
|
||||
Reference in New Issue
Block a user