简体中文 / English
随时随地与他人同步观看视频或共享屏幕。无需注册,即点即用 | Watch videos in sync or share your screen with others. No signup, click and go.
ReelSync 是一个同步观影 / 屏幕共享工具,基于 WebRTC 以及其它现代 Web 技术。
核心特点如下:
- 无需注册登录:链接就是会话。
- 分享直链,打开即加入:房主创建房间并分享链接;访客打开链接即可加入(支持
/?join=ROOM_ID)。 - 跨平台:运行于现代浏览器(桌面体验最佳;移动端可加入观看但屏幕共享受限)。
- 点对点、隐私优先:媒体通过 WebRTC 端到端传输;不做服务端存储 / 转码 / 录制。
- 开源(GPL-3.0):可自部署、可审计。
- 多种来源:
- 本地视频文件(点对点模式)
- 屏幕共享(点对点模式)
- 在线视频 URL(同源模式:双方加载同一 URL,仅同步控制与进度)
Warning
隐私与安全边界仍取决于你所选择的 ICE/TURN 与信令服务。若有更强保障诉求,建议自建或选择可信服务。
- Safari:受 API 限制,点对点采集/推流可能不可用或不稳定。
- Firefox:屏幕共享的“系统音频”通常不可用(浏览器限制)。
- 移动端:通常不支持屏幕共享;可作为观看端加入。
- 媒体通过 WebRTC 端到端传输。
- 点对点模式下,你的视频/屏幕流会直连对方;必要时 TURN 会中继加密后的流量。
- 本项目不实现服务端媒体存储 / 转码 / 录制。
- 请谨慎选择 ICE/TURN 与信令服务;如需更强保障建议自建。
自部署(静态托管)的最佳实践:
- 在本地或 CI 中执行构建产物生成。
- 将
dist/目录部署到任意静态托管(Nginx / Caddy / GitHub Pages / Cloudflare Pages 等)。
git clone https://github.com/kev1nweng/reel-sync && cd reel-sync && pnpm i && pnpm buildWarning
同源模式下,视频播放进度同步对网络的要求较高;较高的网络延迟可能导致频繁的强制同步。 若无法保证良好的网络环境,请将最大可接受延迟时间调高一些(至少 1 秒钟)。
VITE_TURN_SERVER_SOURCE_URL- 你的 ICE/TURN(STUN)服务器列表地址(参考 Cloudflare Realtime Kit)VITE_MAX_ACCEPTABLE_DELAY_SECONDS- 最大可接受延迟时间(秒)VITE_LATENCY_MEASUREMENT_INTERVAL_SECONDS- RTT 延迟测量间隔时间(秒)VITE_SAME_ORIGIN_SYNC_INTERVAL_SECONDS- 同源模式下视频进度同步间隔时间(秒)VITE_ADSENSE_ACCOUNT(可选)- 构建时向index.html注入 AdSense meta
本项目遵循 Vite 环境变量约定。推荐流程:
- 复制
.env.example为.env - 按需修改
该项目在 GPL-3.0 许可证 下发布。
GNU 通用公共许可证第三版(GPL-3.0)是由自由软件基金会(FSF)于2007年发布的自由软件许可证,旨在保障用户运行、研究、共享及修改软件的自由。 其核心条款基于 Copyleft 机制,要求任何使用或分发 GPL-3.0 授权代码的衍生作品必须采用相同许可证公开源码,以防止专有软件对自由软件的限制。 该协议还强化了对数字版权管理(DRM)的技术中立性约束,并提升了与其他开源许可证的兼容性。
有关更多信息,请参阅 LICENSE 文件。
推荐使用 VSCode + Volar(禁用 Vetur)。
安装依赖:
git clone https://github.com/kev1nweng/reel-sync
cd reel-sync
pnpm i启动开发服务器:
pnpm dev构建:
pnpm build