# smart-boardcast-console **Repository Path**: panshangqi/smart-boardcast-console ## Basic Information - **Project Name**: smart-boardcast-console - **Description**: 推流设备 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-24 - **Last Updated**: 2026-09-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 视频采集推流 基于 Electron、Vue 3、Vite 和 TypeScript 的多教室 RTSP 导播台。 当前已打通 RTSP 播放链路:Electron 主进程会启动本地 MediaMTX,把每个摄像头的 RTSP 流转换为 HLS,渲染层使用 hls.js 在主画面播放;拾音器 RTSP 流同样转换为 HLS,并作为当前教室的音频源输出。 ## 环境 - Node.js 22 - npm 10+ ## 开发 ```bash npm install npm run dev ``` ## 检查与构建 ```bash npm run typecheck npm run build ``` ## 打包 ```bash npm run pack:mac npm run pack:mac:unsigned npm run pack:win ``` 安装包生成到 `release/`。 ## 当前能力 - 多教室配置 - 每个教室多摄像头、一个拾音器 - 教室和主摄像头切换 - 本地配置持久化 - RTSP 地址格式及服务端口连通测试 - 音量和静音状态持久化 - 本地 MediaMTX 自动启动与生命周期管理 - RTSP → HLS 转换 - 主画面视频播放 - 当前教室拾音器音频播放 ## 本地运行时 FFmpeg 和 MediaMTX 可执行文件按目标平台放在: ```text runtime/{platform}-{arch}/ffmpeg/ffmpeg[.exe] runtime/{platform}-{arch}/mediamtx/mediamtx ``` 例如 macOS Apple Silicon: ```text runtime/darwin-arm64/ffmpeg/ffmpeg runtime/darwin-arm64/mediamtx/mediamtx ``` FFmpeg 预编译静态版本可从 `ffmpeg-static` 项目的 Releases 页面下载: - https://github.com/eugeneware/ffmpeg-static/releases/ Apple Silicon 设备必须选择 `darwin-arm64` 版本;`darwin-x64` 是 Intel 版本,即使可以通过 Rosetta 运行,也不应作为 ARM64 安装包的运行时文件。 如果 FFmpeg 是通过浏览器手动下载并放入上述目录,需要添加执行权限并移除 macOS quarantine 标记: ```bash chmod +x runtime/darwin-arm64/ffmpeg/ffmpeg xattr -d com.apple.quarantine runtime/darwin-arm64/ffmpeg/ffmpeg ``` `chmod` 用于添加执行权限;`xattr` 用于解除浏览器下载文件的系统隔离标记。如果文件没有 quarantine 标记,第二条命令可能提示属性不存在,可忽略。 MediaMTX 配置由项目统一维护在 `runtime/mediamtx.yml`。`npm run dev` 启动前只检查当前系统对应的 FFmpeg 和 MediaMTX:本地文件通过架构及清单校验时跳过下载,缺失或校验不一致时才按 `runtime-manifest.json` 下载。清单尚未登记时,也可以使用架构正确的本地文件。 发布运行时使用 `npm run upload:runtime` 的交互菜单。上传成功后会更新 `runtime-manifest.json`。使用 `npm run pack:runtime` 选择目标平台,脚本会按清单下载并校验资源后再执行打包,构建目标不依赖当前机器的平台或架构。 ## 已知限制 - 当前视频播放使用 HLS,延迟通常高于 WebRTC,后续可切换为 MediaMTX 的 WHEP/WebRTC 输出。 - RTSP 源若网络质量较差,可能出现丢包;当前拉流已使用 TCP 传输以提高稳定性。