Skip to content

[Feature] Windows 支持 — bb-browser daemon + bb-viewer 编译与运行 #228

Description

@yan5xu

背景

bb-browser 是 npm 包,理论上跨平台,但 Windows 上存在已知问题(#201 MCP 模式立即退出,#205 WSL2 连 Chrome,#217 端口冲突)。同时 bb-viewer(streamer)是 CGo 二进制,依赖 libvpx + libjpeg-turbo,没有 Windows 构建流程。

本 issue 统一跟踪让 bb-browser + bb-viewer 在 Windows 上完整可用。

目标

Windows 用户可以:

  1. npm install -g bb-browser 安装 daemon
  2. bb-browser daemon 正常启动,连接本地 Chrome
  3. bb-viewer(stream)能编译运行,WebRTC 视频流正常
  4. 通过 Pinix Hub 或 MCP 模式正常使用

bb-browser daemon(TypeScript)

已知问题

需要排查/修复

位置 问题
packages/daemon/src/hub-bridge.ts findStreamerBinary() 查找 bb-viewer.exe 后缀
packages/daemon/src/hub-bridge.ts ~/.bb-browser/bin/bb-viewer 路径在 Windows 上的处理
端口选择 默认端口 19824 与 Windows iphlpsvc 冲突(#217),需要换默认端口或自动检测
Chrome 路径检测 确保能找到 Windows 上的 Chrome 安装路径
进程管理 子进程生命周期管理(spawn/kill)在 Windows 上的行为差异

bb-viewer / streamer(Go + CGo)

编译阻塞

bb-viewer 依赖两个 C 库:

用途 Windows 可用性
libvpx VP8 视频编码 vcpkg 有(vcpkg install libvpx
libjpeg-turbo JPEG 解码 vcpkg 有(vcpkg install libjpeg-turbo

当前构建命令是 macOS-specific(brew --prefix):

CGO_CFLAGS="-I$(brew --prefix)/include -I$(brew --prefix libjpeg-turbo)/include" \
CGO_LDFLAGS="-L$(brew --prefix)/lib -L$(brew --prefix libjpeg-turbo)/lib" \
go build -o bb-viewer .

需要做的

  1. Windows 构建文档:用 vcpkg 或 MSYS2 提供 libvpx + libjpeg-turbo
  2. CGo 构建配置encoder.godecoder.go#cgo 指令需要支持 Windows 路径
  3. 预编译二进制分发:提供 bb-viewer-windows-amd64.exe(+ 对应 DLL)
  4. Docker 替代方案:Windows 用户也可以用 Docker Desktop(WSL2 backend)运行现有 Linux 镜像

Pion WebRTC

纯 Go 实现,Windows 上无问题。

具体改动

Phase 1: bb-browser daemon

Phase 2: bb-viewer

  • 提供 Windows 构建说明(vcpkg + Go)
  • 调整 CGo 构建配置支持 Windows
  • CI 加 Windows 构建 / 预编译二进制

验证

  • Windows 上 npm install -g bb-browserbb-browser --mcp 正常运行
  • bb-browser daemon 能连接并控制 Windows Chrome
  • bb-viewer 在 Windows 上编译成功
  • WebRTC stream 功能端到端验证
  • Pinix Hub 模式正常(pinix hub add bb-browser

关联

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions