一起看,进度同步,各自播放自己的副本
一个六位代码,就能让两个或更多播放器停在同一位置、同时暂停、看同一集。你们之间传递的只有时间轴,电影在每块屏幕上都从各人自己的文件、链接或种子以原画质播放。
共享屏幕时,每个人收到的都是某一个人画面的重新编码副本,画质取决于通话能给多少。Frame Player 的做法不同:房间里的每个播放器都自己播放电影,房间共享的是时间轴,也就是播放到了哪里、是否暂停、速度多快、正在放哪个文件。每块屏幕都以自己副本的画质显示电影,而房间让所有屏幕停在同一帧上。
创建房间
- 在播放器的菜单中打开一起看…,选择创建房间。
- 把代码发给要加入的人,或者复制链接。链接会打开一个页面,上面有一个按钮,可以直接启动 Frame Player 并进入房间;还没有安装的人也能在那里知道去哪里下载。
- 对方在同一个窗口中输入代码,或者点击链接。如果是种子或链接,他们的播放器会自动打开你正在看的内容;如果是你磁盘上的文件,他们要打开自己的副本。无论哪种方式,都会停在同一帧上。
两台电脑,同一条时间轴:任何一边跳转,两边都会停在同一帧上。
从此以后,任何一台电脑上的暂停、跳转、调整速度或跳到下一集,都会在所有电脑上同步发生。房主可以开启仅房主可控制播放,让房间只听自己的。
什么是共享的,什么归你自己
播放位置、暂停、速度和正在播放的文件属于房间。你的音量、你的窗口和字幕样式归你自己。有两样介于两者之间,由房主为房间决定:
- 音轨默认共享。一个房间在看同一部电影,和身边的人听到的声音却不一样,这样看电影未免奇怪。
- 字幕默认不共享。有人需要字幕,有人不需要;共享这个选择,就意味着要替离开字幕就看不懂电影的人把字幕关掉。
音轨以描述的形式传递(语言、名称、编码),而不是音轨编号,因为在一个副本中是第 2 条音轨的俄语配音,在另一个副本中常常是第 3 条。
每个人需要什么
加入是否容易,取决于电影来自哪里。
- 种子是最理想的情况。房间共享种子的标识,每位客人的播放器都会自动连接到这个种子,谁都不用粘贴磁力链接,并从同一批用户那里获取文件。种子不必先下载完:房间可以一起看仍在下载的种子,每个人都是资源的原画质,每个播放器都优先下载房间即将看到的部分。一季看到一半才加入的客人,片刻之间就能看上;切到下一集,所有人一起切换。
- 链接只要每个人的播放器都能打开就行;需要 yt-dlp 的网页会在每台电脑上分别解析。
- 你磁盘上的文件无法发送。每个人打开自己的副本。播放器会比较文件的指纹和时长,说明属于以下三种情况中的哪一种:同一资源、同一部电影的不同压制版本(时长相同但文件不同,很接近,但可能有几帧不一样),或者不同的文件。三种情况都不会被拒绝;故意看另一个剪辑版本的客人会收到提示,而不会被阻止。
如何保持同步
让两个播放器保持一致,主要在于不要把情况弄得更糟。
小偏差靠调整速度纠正,而不是跳转。为了纠正三分之一秒而跳转,就要从前一个关键帧开始解码,这可能让 4K 文件卡顿两秒,结果比开始时偏得更远。以 103% 的速度播放十秒,就能纠正同样的偏差,看不出也听不出,因为 mpv 会保持音调不变。只有超过两秒的偏差才通过跳转纠正。
房间会等正在缓冲的人。所有人在同一位置暂停,等他准备好后自动继续播放。有人主动要求的暂停永远不会以这种方式解除;失去响应的播放器最多只能让房间等 45 秒。
与常见方式对比
| 对比项 | Frame Player | Syncplay | Teleparty | 屏幕共享 |
|---|---|---|---|---|
| 能看什么 | 你自己的文件、链接和种子 | 你自己的文件 | Netflix、Disney+ 等服务上的电影 | 一块屏幕上的任何内容 |
| 每个人需要 | Frame Player,以及能播放这部电影的方式 | Syncplay、一个受支持的播放器和自己的副本 | 一个浏览器扩展和自己的订阅 | 通话应用 |
| 画面 | 每个人自己的副本,原画质 | 每个人自己的副本 | 服务提供的视频流 | 一块屏幕的重新编码视频流 |
| 种子 | 每个人都自动连接,谁都不用粘贴磁力链接 | 每个人自己找到并下载 | — | 只有共享者需要 |
| 仍在下载时 | 边下载边一起看,每个人都是原画质 | 每个人先下载完 | — | 共享者的屏幕,重新编码 |
Syncplay 值得一提:多年来它一直为 mpv、VLC、MPC-HC 和 IINA 提供这个功能,而且做得非常好。区别在于 Frame Player 内置了这个功能,而且对于种子或链接,它会为每位客人打开电影,而不是要求每个人事先都已经有了。
房间服务器保存什么
房间服务器的存在是为了在播放器之间传递时间轴。它知道房间代码、大家选择显示的名字,以及房间正在看什么;设为私密的文件夹中的文件会以“隐藏”的形式共享,时间轴照样同步,而文件名永远不会离开你的电脑。没有账号,没有聊天,什么都不会写入磁盘,最后一个人离开五分钟后房间就会被清除。服务器是开源的,如果你想运行自己的服务器,它的地址是一项设置。
常见问题
每个人都需要有自己的视频副本吗?
每个人都需要能播放它,具体怎么做取决于是什么内容。对于种子或链接,播放器会自动为每个人打开。某人磁盘上的文件无法发送,所以每个人打开自己的副本,播放器会告诉你那是同一资源、同一部电影的不同压制版本,还是不同的文件。
视频会经过你们的服务器吗?
不会,以后也永远不会,这是设计如此,而不是限制。房间服务器只在播放器之间传递时间轴(播放位置、暂停、速度、哪一集),别的什么都不传。每个播放器都从自己的磁盘、网站或种子获取电影。
房间服务器知道些什么?
房间代码、大家选择显示的名字、时间轴,以及房间正在看什么:种子的标识、链接,或本地文件的指纹。设为私密的文件夹中的文件会以“隐藏”的形式共享,房间照样同步。什么都不会写入磁盘,最后一个人离开五分钟后,房间就会被清除。
如果有人网速慢怎么办?
房间会等。有人仍在缓冲时,所有人都在同一位置暂停,等他准备好后自动继续播放。完全失去响应的播放器最多只能让房间等 45 秒。
我可以运行自己的房间服务器吗?
可以。它是一个小型开源程序,不需要数据库,和播放器在同一个代码仓库中,它的地址是“设置 › 常规”中的一项。