Files
traepro-videoserver/README.md
2025-07-24 22:55:21 +08:00

170 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<<<<<<< HEAD
# traepro-videoserver
=======
# Trae Video Server
一个基于Electron的专业视频采集和流媒体服务程序支持实时视频预览和网络流媒体分发
## 功能特性
- 🎥 **设备管理**: 自动检测并列出所有可用的视频采集设备
- 📺 **实时预览**: 在应用程序内显示选定设备的实时视频画面
- 🌐 **流媒体服务**: 提供HTTP流媒体服务支持网页端实时观看
- 🎨 **现代UI**: 美观的用户界面支持响应式设计
- **高性能**: 优化的视频处理和网络传输
## 系统要求
- Node.js 16.0 或更高版本
- Windows 10/11, macOS 10.14+, Linux
- 至少一个可用的视频采集设备摄像头
## 安装和运行
### 1. 安装依赖
```bash
npm install
```
### 2. 启动应用程序
```bash
# 生产模式
npm start
# 开发模式(包含开发者工具)
npm run dev
```
### 3. 构建可执行文件
```bash
npm run build
```
## 使用说明
### 主要功能
1. **设备选择**
- 启动应用后程序会自动检测所有可用的视频设备
- 在下拉菜单中选择要使用的摄像头
- 点击"刷新设备"按钮可重新扫描设备
2. **开始预览**
- 选择设备后点击"开始预览"按钮
- 应用程序下方会显示实时视频画面
- 同时启动流媒体服务器
3. **网络流媒体**
- 预览启动后可通过 `http://localhost:3000/preview` 访问网页版预览
- 其他设备可通过网络访问此地址观看实时视频
- 支持多客户端同时连接
4. **停止预览**
- 点击"停止预览"按钮结束视频采集
- 自动释放设备资源和网络连接
### 网络访问
流媒体服务默认运行在端口3000上提供以下接口
- **网页预览**: `http://localhost:3000/preview`
- **Socket.IO连接**: 用于实时视频帧传输
## 技术架构
### 核心技术栈
- **Electron**: 跨平台桌面应用框架
- **Express**: Web服务器框架
- **Socket.IO**: 实时双向通信
- **WebRTC**: 视频采集和处理
- **HTML5 Canvas**: 视频帧处理
### 项目结构
```
trae-video-server/
├── main.js # Electron主进程
├── index.html # 主界面
├── package.json # 项目配置
├── assets/ # 资源文件
│ └── icon.svg # 应用图标
├── public/ # 静态资源
│ └── preview.html # 网页预览界面
└── README.md # 项目文档
```
### 工作流程
1. **设备检测**: 使用 `navigator.mediaDevices.enumerateDevices()` 获取设备列表
2. **视频采集**: 通过 `getUserMedia()` API 获取视频流
3. **帧处理**: 使用Canvas将视频帧转换为图像数据
4. **网络传输**: 通过Socket.IO将帧数据广播给所有连接的客户端
5. **实时显示**: 客户端接收帧数据并实时更新显示
## 配置选项
### 视频参数
默认视频配置可在代码中修改
- 分辨率: 1280x720
- 帧率: 30 FPS网络传输
- 图像格式: JPEG
- 压缩质量: 80%
### 网络配置
- 默认端口: 3000
- CORS: 允许所有来源
- Socket.IO: 支持跨域连接
## 故障排除
### 常见问题
1. **设备检测失败**
- 确保摄像头已正确连接
- 检查设备权限设置
- 重启应用程序
2. **预览无法启动**
- 确保设备未被其他应用占用
- 检查浏览器权限设置
- 尝试选择不同的设备
3. **网络连接问题**
- 检查防火墙设置
- 确保端口3000未被占用
- 验证网络连接状态
### 调试模式
使用开发模式启动应用以查看详细日志
```bash
npm run dev
```
## 许可证
MIT License - 详见 LICENSE 文件
## 贡献
欢迎提交Issue和Pull Request来改进这个项目
## 联系方式
如有问题或建议请通过以下方式联系
- 创建GitHub Issue
- 发送邮件至项目维护者
---
**Trae Video Server** - 专业的视频采集与流媒体解决方案
>>>>>>> e7062f2 (首次上传)