像看直播一样观看 VR。
也许是最轻松的 VR 观看方式——不用戴头显,也不怕晕。打开视频,坐下来直接看就好。
| 观看体验 | 片源与工具 |
|---|---|
| 无需头显也能看 VR 将 VR 视频转成舒适的 2D 画面,自动跟随人物并保持竖屏构图。 |
常见格式直接播放 支持 180°、360°、左右、上下、鱼眼和普通平面视频。 |
| 画中画(仅 Chromium) 让竖屏画面和字幕悬浮在最前面;拖动调整视角,单击播放或暂停。 |
本地片库随手打开 打开本地文件和文件夹,或通过内置媒体服务器、DLNA 浏览片库;字幕自动匹配。 |
| 可安装为桌面应用(PWA) 从系统直接打开 MP4、M4V 和 MKV;有新版本时在应用内更新。 |
截取并导出 A–B 片段 导出当前视角的 WebM、MP4 或动态照片;浏览器支持时可保留字幕。 |
支持鼠标、键盘快捷键和屏幕控件;Foursmith VR 免费开源。
Important
大多数 8K VR 视频在 Safari 或 Firefox 中可能无法正常播放,或播放不够流畅。iOS 上的所有浏览器底层都采用与 Safari 相同的 WebKit 引擎。
建议使用桌面版 Chrome、Edge 或其他 Chromium 浏览器。
| 快捷键 | 操作 |
|---|---|
| 空格 | 播放或暂停 |
| 左方向键 | 快退 10 秒 |
| 右方向键 | 快进 10 秒 |
| Shift + 左方向键 | 快退 60 秒 |
| Shift + 右方向键 | 快进 60 秒 |
| 上 / 下方向键 | 调整音量 |
| M | 静音或取消静音 |
| F | 切换全屏 |
| R | 重置视角 |
| [ / - | 缩小 |
| ] / = | 放大 |
| 1–7 | 选择投影模式 |
| , / . | 切换到上一档或下一档画质预设 |
推荐通过 Docker 运行本地媒体服务器。它既提供完整的 Web 界面,也能读取本地媒体目录,并发现 DLNA 设备。
复制示例环境变量文件,将 FSVR_MEDIA_DIR 设为媒体文件所在的目录或磁盘挂载路径,然后启动服务:
cp .env.example .env
docker compose up -d
docker compose logs fsvr打开 http://localhost:4090,使用 docker compose logs fsvr 输出的密码登录。媒体目录会以只读方式挂载。在 macOS 上,外置磁盘的路径通常类似 /Volumes/Media/Movies;在 Linux 上则可能是 /mnt/media。
如需基于当前源码自行构建镜像,请运行 docker compose up -d --build,而不是直接使用已发布的镜像。
将 ~/Movies 挂载为媒体目录,直接运行已发布的镜像:
docker run --rm -p 4090:4090 -v "$HOME/Movies:/media:ro" ghcr.io/foursmith/vr:latest自动生成的访问密码会输出到容器日志中。在镜像名称后传入 --disable-password 可关闭身份验证,传入 --password <password> 则可设置固定密码。
以 v* 格式命名的版本标签会触发发布流程:向 ghcr.io/foursmith/vr 推送多架构 Docker 镜像,并创建附带自动生成更新日志的 GitHub Release。
| 领域 | 技术 |
|---|---|
| Web 界面 | SolidJS 2 beta、TypeScript |
| 构建与 PWA | Vite、Vite PWA |
| VR 渲染 | Three.js |
| 人脸跟踪 | MediaPipe Tasks Vision |
| 样式与图标 | UnoCSS(presetWind3())、Iconify |
| 本地媒体服务器 | Bun、Citty |
| 测试 | Vitest、Playwright |
请先安装 Bun,然后安装依赖并启动 Web 应用:
bun install
bun run dev如需同时启动 Web 应用和本地媒体服务器进行开发,请传入媒体目录:
bun run dev:cli -- ~/Movies以上两个开发命令均支持热更新。媒体服务器的开发模式会在 http://127.0.0.1:4090 启动,且不启用身份验证。
运行检查和生产构建:
bun run typecheck
bun run test
bun run build
bun run typecheck:cli
bun run test:cli
bun run build:cli欢迎反馈 Bug、提出功能建议或提交 Pull Request。在着手修复 Bug 或进行较大改动之前,请先通过 GitHub Issues 讨论。
- Fork 本仓库,并创建一个目标明确的分支。
- 完成改动,并视情况添加或更新测试。
- 运行
bun run lint、bun run typecheck和bun run test。如改动涉及 CLI,还需运行bun run typecheck:cli和bun run test:cli。 - 提交信息请遵循 Conventional Commits 规范,例如
fix(player): correct projection reset。 - 提交 Pull Request,说明改动内容和验证方式。
修改 Web 界面时,请遵循项目的 SolidJS 2 迁移指南 和现有 UnoCSS Wind3 规范。如改动涉及人脸检测、跟踪或居中算法,还必须同步更新 人像居中维护文档。
Foursmith VR 采用 Mozilla Public License 2.0 许可证发布。
代码出自 GPT-5.6 Sol。 品味来自 ourongxing。