简介
Billd-Live是一个基于Vue3、WebRTC、Node、SRS和FFmpeg等核心技术搭建的直播间系统。
目前实现了类似 bilibili 的 Web 在线直播功能,即你(房主)可以发布直播,别人进入你的直播间后能看到你的直播内容;而你也可以作为观众,进入别人的直播间看别人的直播内容。
核心功能
Billd-Live提供了丰富而强大的直播功能,满足各种直播场景的需求:
多样化的推拉流方式
-
原生WebRTC推拉流:无需插件,极低延迟
-
SRS WebRTC推流:支持http-flv、hls、webrtc、rtmp多种多种协议拉流
-
MSR推流+FFmpeg转码:提高兼容性和稳定性
-
第三方工具推流:完美支持OBS、FFmpeg等专业工具
丰富的直播场景
-
一对一PK:适合主播对战
-
一对多PK:扩展互动可能性
-
多对多PK:实现复杂直播互动
专业化功能
-
前端混流:使用Web Audio和Canvas处理音视频流
-
推流/拉流鉴权:保障直播安全
-
移动端App:基于Flutter框架开发
-
客户端App:使用Electron构建桌面端应用应用
部署指南
环境准备
必需软件及版本环境检查
打开终端,执行以下命令确认环境就绪:
# 检查Node.js版本 node --version # 应该显示 v18.19.0+ # 检查pnpm版本 pnpm --version # 应该显示 8.x # 检查Docker docker --version # 应该显示 Docker version 24+ docker-compose --version # 应该显示 Docker Compose version v2+
获取源代码
1. 克隆所有必要仓库# 创建项目目录 mkdir billd-live-project cdbilld-live-project # 克隆主要仓库 gitclonehttps://github.com/galaxy-s10/billd-live.git # 前端 gitclonehttps://github.com/galaxy-s10/billd-live-server.git # 后端API gitclonehttps://github.com/galaxy-s10/billd-live-admin.git # 管理后台 2. 检查目录结构
完成后,你的目录结构应该是:
billd-live-project/ ├── billd-live/ # 前端直播间 ├── billd-live-server/ # 后端API服务 └── billd-live-admin/ # 管理后台
️ 数据库设置
1. 启动MySQL和Redis容器cdbilld-live-server # 使用项目提供的docker-compose启动数据库服务 docker-compose up -d mysql redis
等待片刻后检查容器状态:
docker ps
应该看到mysql和redis容器正在运行。
2. 初始化数据库
连接到MySQL(密码在docker-compose.yml中默认为123456):
# 进入MySQL容器 dockerexec-it billd-mysql mysql -uroot -p123456 # 在MySQL命令行中创建数据库 CREATE DATABASE IF NOT EXISTS billd_live CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; exit; 3. 导入数据结构# 回到项目根目录 cd../.. # 如果有sql文件则导入,否则后端会自动创建表结构 # 先检查是否有sql文件 find . -name"*.sql"
后端服务部署
1. 安装依赖cdbilld-live-server pnpm install
如果在安装过程中遇到node-gyp相关错误,需要安装编译工具:
Windows:
npm install --global windows-build-tools
macOS:
xcode-select --install
Linux (Ubuntu/Debian):
sudo apt update sudo apt install build-essential python3 2. 环境变量配置
复制并编辑环境配置文件:
cp .env.example .env
编辑.env文件,重点配置以下项:
# 数据库配置 MYSQL_DATABASE=billd_live MYSQL_USERNAME=root MYSQL_PASSWORD=123456 MYSQL_HOST=127.0.0.1 MYSQL_PORT=3306 # Redis配置 REDIS_HOST=127.0.0.1 REDIS_PORT=6379 REDIS_PASSWORD= # 服务端口 SERVER_PORT=4300 SERVER_HOST=0.0.0.0 # JWT密钥(自行生成随机字符串) JWT_SECRET=your-jwt-secret-key-here # 其他保持默认即可 3. 启动后端服务# 开发模式启动 pnpm run dev # 或者在新的终端窗口运行,避免阻塞 nohup pnpm run dev &
正常启动后会显示:
Server running on port 4300 Database connected successfully
前端服务部署
1. 安装前端依赖
打开新的终端窗口:
cdbilld-live pnpm install 2. 配置前端环境cp .env.example .env.local
编辑.env.local文件:
# API基础URL VITE_BASE_API=http://localhost:4300 # WebSocket URL VITE_SOCKET_URL=http://localhost:4300 # 静态资源URL VITE_STATIC_URL=http://localhost:4300 # 其他配置根据需要调整 3. 启动前端服务pnpm run start
正常启动后会显示:
➜ Local: http://localhost:3344/ ➜ Network: use --host to expose
管理后台部署
1. 安装管理后台依赖
再开一个新的终端窗口:
cdbilld-live-admin pnpm install 2. 启动管理后台pnpm run start
SRS流媒体服务器部署
1. 启动SRS服务# 在项目任意位置执行 docker run -d \ --name srs-server \ -p 1935:1935 \ -p 1985:1985 \ -p 8080:8080 \ -p 8000:8000/udp \ registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5.0.196 196 2. 验证SRS状态
访问http://localhost:8080应该能看到SRS控制台。
✅ 完整验证
现在你应该有4个服务在运行:
-
后端API: http://localhost:4300
-
前端直播间: http://localhost:3344
-
管理后台: http://localhost:4455
-
SRS流媒体: http://localhost:8080
测试接口连通性curl http://localhost:4300/api/test
如果返回JSON数据说明后端正常运行。
浏览器访问测试
-
打开 http://localhost:3344 应该能看到直播间界面
-
打开 http://localhost:4455 应该能看到管理后台登录页
首次使用配置
1. 创建管理员账户
首次使用时需要通过API创建管理员账号:
curl -X POST http://localhost:4300/api/auth/register \ -H"Content-Type: application/json"\ -d'{ "username": "admin", "password": "admin123", "email": "[email protected]" }' 2. 登录管理后台
使用刚创建的账户登录管理后台,完成基本配置。
预览
电脑端(web)
-
首页

-
分区

-
-
进入直播间
-
-
发起直播
-
-
排行榜
-
-
用户中心
-
直播中心
直播间信息开播设置直播数据
移动端(web)
-
-
首页
-
-
进入直播间
后台(web)
-
-
控制台
-
-
黑名单
-
直播管理

-
-
直播记录
-
-
直播间列表
-
-
直播间消息列表
-
-
订单列表
-
-
商品列表
-
-
全局消息列表
后端专属技术群
广告人士勿入,切勿轻信私聊,防止被骗
加我好友,拉你进群
点下方的“❤”支持我们,非常感谢!
