VoceSpace 是一个基于 WebRTC 的开源视频会议平台,提供高质量的音视频通信、AI 智能分析、虚拟角色、房间管理和录制存储等功能。
访问 vocespace 演示 试用。
- 前端框架: Next.js 14 (App Router) + React 18
- UI 组件: Ant Design 5
- 实时通信: LiveKit + Socket.IO
- 状态管理: Zustand
- 数据持久化: Redis (ioredis)
- 对象存储: AWS S3 SDK v3
- 虚拟角色: Live2D (pixi-live2d-display)
- AI 集成: OpenAI SDK (支持多模态模型)
- 国际化: 内置 i18n (中文/英文/俄语)
- 部署: Docker + Nginx
启动并运行本地开发环境的步骤:
- 运行
pnpm install安装所有依赖项。 - 将
.env.example复制到项目根目录,并将其重命名为.env.local。 - 创建配置文件
vocespace.conf.json(参考下方配置说明)。 - 运行
pnpm dev启动开发服务器,并访问 http://localhost:3000 查看结果。 - 开始开发
pnpm dev # 启动开发服务器
pnpm build # 构建生产版本
pnpm start # 启动生产服务器
pnpm lint # 运行代码检查{
"livekit": {
"key": "your-production-key",
"secret": "your-production-secret",
"url": "ws://host.docker.internal:7880",
"turn": {
"urls": "turn:your-turn-server:3478",
"username": "your-turn-username",
"credential": "your-turn-password"
}
},
"codec": "vp9",
"resolution": "1080p",
"maxBitrate": 3000000,
"maxFramerate": 30,
"priority": "medium",
"redis": {
"enabled": true,
"host": "host.docker.internal",
"port": 6379,
"password": "",
"db": 0
},
"s3": {
"enabled": false,
"endpoint": "your-s3-endpoint",
"bucket": "your-bucket",
"accessKey": "your-access-key",
"secretKey": "your-secret-key",
"region": "your-region"
},
"serverUrl": "your-domain.com",
"hostToken": "your-host-token",
"license": "your-license-token",
"ai": {
"enabled": true,
"apiKey": "your-ai-api-key",
"apiUrl": "your-ai-api-url",
"model": "your-ai-model",
"maxTokens": 4000
}
}VoceSpace 提供全面的视频会议体验,拥有先进的 AI 功能和丰富的自定义选项。
基本控制
- 麦克风预览和测试
- 摄像头预览和设备选择
- 实时视频预览
- 自定义用户名输入和自动生成(用户 01-99 格式)
- 一键加入房间
- 进入时显示用户名焦点
- 使用骨架屏优化加载时间
高级设置
- 音量调节和测试
- 多麦克风设备选择
- 带实时预览的视频模糊强度控制
- 多摄像头设备选择
- 摄像头翻转支持(移动端)
- 设置重置功能
- 自动生成用户名(基于 ULID)
- 首个加入者自动命名为 admin
- 高质量无损传输
- 端到端加密 (E2EE)
- 设备权限检测和引导
核心功能
- 高质量音视频通信 (4K@60fps, 2M 编码)
- 支持音频的屏幕共享(可配置)
- 多种布局选项(网格、焦点、演讲者视图)
- 自定义分页控制和布局
- 实时聊天及文件共享
- 拖放式文件上传(最大 100MB)
- 文件上传进度显示和取消功能
- 消息历史记录持久化(Redis 支持)
- 未读消息通知(带徽章)
- 聊天消息时间戳,5 分钟分组
- 自动消息滚动到最新
- 链接预览和可点击链接
- 移动端响应式布局和控制
主持人管理
- 房间所有权和主持人
- 参与者管理(静音、视频控制、移除)
- 主持人转移功能
- 参与者音量控制
- 其他人视频/屏幕模糊控制
- 设备邀请系统(摄像头、麦克风、屏幕开关)
- 房间安全控制
- 全局质量设置管理
- 用于管理员功能的主持人令牌身份验证
互动功能
- 屏幕共享期间实时光标共享
- 用户之间挥手通知和房间邀请
- 用户状态指示器和自定义状态
- 实时用户状态同步和更新
- 多语言支持(中/英/俄)
- 按首字母搜索和排序参与者
- 右键菜单用于用户管理
- 带有广播通知的举手功能
- 举手发言权限控制和主持人审批
- 举手排队和状态显示
- 反应表情快捷发送
多房间架构
- 主空间,包含无限个子房间
- 公共和私人房间类型
- 默认子房间(Meeting Room、Coffee Break)
- 房间创建、删除和重命名
- 实时显示参与者数量和在线状态
- 房间权限管理
- 可悬停扩展的自动折叠侧边栏
- 房间持久性设置(数据保留)
- 公开房间默认展开显示
高级房间功能
- 私人房间审批系统和加入通知
- 房间所有者权限和控制
- 主持人对所有子房间的完全权限
- 跨房间屏幕共享权限
- 退出时自动清理房间(非持久化)
- 特定房间用户状态管理
- 房间内用户轨道订阅权限控制
- 子房间用户隔离和音频过滤
AI 截图分析与工作日志
- 自动屏幕截图和 AI 分析
- 可配置的截图频率(1-15 分钟间隔)
- 多数据源支持(屏幕分享、待办事项、时间统计)
- 实时工作日志生成和总结
- Markdown 格式的分析结果导出
- 与历史数据结合的上下文分析
- 自动定时更新分析结果
- 屏幕共享权限请求和引导
- 支持 AI 工作日志小部件显示
- 自定义 AI 提示词配置
- 多语言 AI 分析支持
虚拟角色
- Live2D 虚拟角色集成面部追踪
- 实时面部追踪和动画
- 多种虚拟角色模型选择
- 自定义背景和环境
- 性能优化和自动检测
- 无缝虚拟角色切换,带遮罩效果
- 对比前后效果模式
- 每位用户的虚拟角色模型隔离
音频增强
- Krisp AI 降噪
- 实时音频处理
- 音量标准化
- 可自定义新用户加入提示音
房间录音
- 4K 画质的全房间录音功能
- 主持人发起录音
- 参与者录音请求及审批流程
- 实时录音通知
- 自动 S3 存储集成
- S3 文件自动清理(7 天后自动删除,防止存储费用增长)
- 下载链接,有效期 3 天
- 支持移动端录音,并带有权限检测
- 录音管理面板(Dashboard 和独立页面)
文件管理
- 聊天中文件拖放共享
- 图片预览和下载
- 按房间自动整理文件
- 安全的文件存储和检索
- 文件大小和类型验证
效率应用
- 带任务管理功能的待办事项列表应用
- 待办事项可编辑和完成标记
- 待办事项导出功能(包含时间记录)
- 团队进度(Team Status)显示所有成员的待办进度
- 带圈数记录功能的计时器应用
- 可自定义时长的倒计时器
- 应用浮动窗口和滚动条支持
- 可折叠的应用小部件
- 跨参与者应用数据共享
- 单个应用独立分享功能
- 用户视图右上角应用图标快捷访问
应用管理
- 主持人控制的应用权限
- 应用数据上传和同步
- 应用历史记录追踪
- 个人应用共享控件(公开/私密)
- 应用数据跨会话持久化
- 自动上传配置选项
- 每用户应用数据隔离
音频配置
- 设备选择和切换
- 音量控制和测试
- 实时音质调节
- 屏幕共享音频切换
- 可自定义通知声音
- 耳返功能
视频配置
- 摄像头设备管理
- 带 GPU 加速的模糊强度控制 (0-100%)
- 屏幕共享模糊设置
- 实时视频质量优化
- 无损传输模式
- 根据网络连接动态调整质量
虚拟环境
- 集成 Live2D 的虚拟模特模型选择
- 背景自定义
- 性能监控和自动调整
- 效果对比模式查看
- WebGL 加速视频处理
系统偏好设置
- 多语言界面 (i18n)
- 自定义用户状态创建和管理
- 用户状态与待办事项联动
- 主题和 UI 自定义
- 在 localStorage 中持久存储设置
- 自动保存设置并即时同步
- 动态全局配置支持
- 主持人配置热重载功能
加密与安全
- 支持端到端加密 (E2EE)
- 安全的 WebRTC 通信
- TURN 服务器集成以实现连接
- 唯一参与者 ID 生成(基于 ULID)
- 基于会话的身份验证
- License 证书验证系统
- 域名和人数限制控制
- 临时证书和正式证书支持
- 微信访问拦截(引导使用浏览器打开)
权限与访问控制
- 设备权限管理
- 详细的权限说明和指南
- 精细的访问控制
- 私人房间审批流程
- 主持人权限管理
- 举手发言权限控制
- 应用数据访问权限管理
性能与可靠性
- 客户端性能监控
- 服务器端性能跟踪(带心跳)
- WebGL 加速视频处理
- 优化编解码器选择 (VP9/VP8/H264/AV1)
- 自动重连机制
- 连接质量监控
- 回退连接选项
基础架构
- 基于 Redis 的数据持久化
- 使用 Socket.IO 进行 WebSocket 实时通信
- Socket 断线重连和自动恢复机制
- 支持 Docker 部署和容器化
- 集成 S3 用于媒体存储
- 自定义 Express + Next.js 服务器架构
- 支持水平扩展
- 服务器心跳检测和健康监控
- S3 文件自动清理任务(持久化到 uploads/S3_clean.json,服务器重启自动恢复)
数据管理
- 用户会话管理和唯一 ID 生成
- 房间状态同步和实时更新
- 聊天记录持久化
- 应用程序数据备份和恢复
- 自动数据清理和生命周期管理
- 持久化房间数据保留
- 用户离线检测和清理机制
- 幽灵用户自动清理(心跳检测,每 5 分钟)
- 清理记录持久化和审计
使用情况分析
- 实时活跃房间监控
- 历史记录,包含每日/每周/每月排名
- 参会时长排序和榜单显示
- 用户活动分析和排行榜
- 性能指标仪表盘
- 参与者参与度追踪
- Redis 心跳检测和用户状态同步
管理工具
- 包含全面统计数据的管理仪表盘
- Dashboard 画质配置管理
- 所有房间的实时参与者追踪
- 会话时长监控
- 资源使用优化
- 全局配置管理和热重载
- 用户管理和审核工具
- 主持人令牌身份验证
- 心跳日志实时监控(DashboardLog 组件)
- 清理记录表格展示(时间/房间/用户数/策略)
- 空间导出功能
- 数据库清理 (FlushDB)
- 创建空间策略管理(白名单/权限控制)
开发与部署
- Docker 容器化和一键部署
- 基于环境的配置
- 生产/开发模式区分
- 自动部署脚本(中英文版本)
- 性能测试和负载均衡
- SEO 优化和元标签
- 多环境配置文件支持
- 快速本地部署文档
- Egress 录制服务集成
- Nginx 反向代理配置
vocespace/
├── app/ # Next.js App Router
│ ├── [spaceName]/ # 空间主页面(动态路由)
│ ├── api/ # API 路由
│ │ ├── ai/ # AI 分析接口
│ │ ├── chat/ # 聊天接口
│ │ ├── conf/ # 配置管理接口
│ │ ├── connection-details/ # LiveKit 连接详情
│ │ ├── record/ # 录制管理接口
│ │ ├── s3/ # S3 存储接口
│ │ ├── space/ # 空间管理接口
│ │ └── webhook/ # LiveKit Webhook
│ ├── dashboard/ # 管理仪表盘
│ ├── recording/ # 录制管理页面
│ ├── new_space/ # 创建空间页面
│ └── pages/ # 房间内部组件
│ ├── apps/ # 内置应用(待办、计时器等)
│ ├── chat/ # 聊天组件
│ ├── controls/ # 控制栏和设置
│ ├── layout/ # 布局组件
│ ├── participant/ # 参与者组件
│ └── pre_join/ # 加入前页面
├── lib/ # 共享库
│ ├── ai/ # AI 分析工具
│ ├── api/ # API 客户端
│ ├── i18n/ # 国际化 (zh_CN, en_US, ru_RU)
│ ├── std/ # 标准工具和类型
│ └── s3-clean.ts # S3 文件清理任务管理
├── deploy/ # 部署配置
│ ├── docker/ # Docker 相关
│ ├── nginx/ # Nginx 配置
│ └── shell/ # 部署脚本
├── public/ # 静态资源
├── server.js # 自定义服务器(Express + Socket.IO)
└── vocespace.conf.json # 项目配置文件