漂移校正与同步时序
AutoScript Sync 如何处理 funscript 同步漂移,取决于设备路径。Autoblow AI Ultra 按自己的时钟播放上传的脚本,因此应用每 1.5 到 5 秒将其与视频核对一次,发生偏移时进行修正或重新启动。Intiface 设备由你电脑的时钟逐点驱动,没有漂移校正循环。使用 DeoVR 时,以头显的时钟为准。以下内容都是应用的规则,取自其代码。这不是实测的同步精度:我们没有公布任何延迟或漂移测量数据。
已于 2026 年 9 月 21 日对照应用代码核实。
一切所依循的时钟
在桌面上,视频在应用内嵌的 VLC 播放器中播放。应用大约每 33 ms(约每秒 30 次)把 VLC 的播放时间传给同步引擎,这个时间就是每条设备路径所依据的基准。在 DeoVR 会话中,按设计应由头显报告的时间取而代之,详见下文。
| 路径 | 由谁保存脚本 | 延迟补偿 | 漂移校正 |
|---|---|---|---|
| Autoblow AI Ultra(云端) | 设备本身(上传一次之后) | 每次启动时补偿实测往返时间的一半 | 有,每 1.5–5 秒一次 |
| Intiface / Buttplug,主设备 | 电脑,逐点发送 | 无 | 无;在播放、跳转或更改设置时重新对齐 |
| Meta Quest 上的 DeoVR | 取决于设备路径 | 与该设备相同 | Autoblow 有,以头显的时钟为准,该时钟大约每秒传来一次 |
只有 Autoblow AI Ultra 在真实硬件上测试过。Intiface 设备和 DeoVR 路径是用模拟服务器或假设备测试的。
Autoblow AI Ultra:上传一次,然后校正
Ultra 只能通过 Autoblow 的云端控制;电脑从不直接连接它,而且播放时两者都需要联网。应用不会向它实时串流位置,而是:
- 连接后,应用对四次状态请求的往返时间取平均,并显示为
API N ms。 - Send Script to Device 把按设备适配后的脚本上传一次。之后由 Ultra 自己播放整个脚本。
- 播放时,应用在当前视频时间加上实测往返时间的一半处启动设备。暂停时停止设备。
- 跳转时,应用在新的时间点重新启动设备,同样加上往返时间的一半,并在 200 ms 内暂停漂移检查。
- 播放期间,漂移循环会把设备自身的脚本时钟与视频进行比较,如下所述。
播放期间,应用会维护往返时间的平滑平均值及抖动估计,并在每次启动和重新启动时使用其一半。
漂移循环
漂移等于从 Autoblow 状态接口读取的设备脚本时间减去视频时间。第一次检查在播放或跳转后约 1 秒进行。此后循环间隔从 3 秒开始,任何校正后降到 1.5 秒,每次检查无异常则增加 0.5 秒,最长 5 秒。
循环何时让步
- API 余量不足。Autoblow 的响应带有速率限制头。当显示剩余调用次数为 5 次或更少时,会跳过漂移检查。Autoblow 没有公布具体的数值限制。
- 设备自带的模式。当 Ultra 运行内置模式、往复摆动模式或定点移动时,漂移检查会停止。应用会说明原因,重新发送脚本即可恢复同步。
- 连接中断。如果定点移动、同步启动或往复摆动设置失败,连接会进入重新连接状态,后台监视器每 5 秒重试一次。如果在播放中途恢复,应用会自动将设备重新对齐到视频。
- 尚未发送脚本。如果在使用 Send Script to Device 之前就播放,应用会退回到每秒约 4 次的位置指令,并显示
Streaming positions (fallback mode)。这种方式很粗糙;要流畅同步,必须上传脚本。
有一种交互尚未测试。修正是通过与你的 Offset 设置相同的设备偏移实现的,而漂移读数没有把该偏移考虑在内。应用偏移后 Ultra 如何报告其脚本时间,决定了修正是否会体现在下一次读数中,也决定了大于 350 ms 的 Offset 本身是否可能被读作漂移并触发重启。测试设备会忽略偏移,因此这两种情况都未经检验。设备方面的内容见 Autoblow AI Ultra 页面。
Intiface 设备:由电脑计时
通过 Intiface 和 Buttplug 连接的设备由电脑经本地 WebSocket 实时驱动。不会上传任何内容。对于往复式设备,每个脚本点变成一条 LinearCmd,其持续时间为到下一个点的时间(至少 30 ms),因此设备会自行在点与点之间平滑移动。带位置执行器的设备则直接收到位置。
计时从你按下播放或跳转的那一刻起按电脑的时钟运行,并按你的 Offset 平移。只在播放、跳转或更改设置时重新对齐到视频,其他时候不会:Intiface 主设备没有延迟测量,也没有漂移循环。代码把本地连接上的漂移视为可以忽略。其结果是,如果视频在播放中途卡住或缓冲,主设备要等到你下一次播放、跳转或更改设置时才会被拉回。
在下一次更新中,第二台设备可以与主设备一起跟随视频。它会随视频启动、停止和跳转,每 2 秒检查一次,偏移超过 400 ms 时在播放头位置重新启动。在已发布的应用中,第二个设备槽位需手动控制。
Intiface 路径是用模拟服务器和真实引擎上的假设备测试的,而不是用真实的玩具。The Handy、Kiiroo、Lovense 和 OSR2/SR6 设备尚未经我们在真实硬件上测试。
使用 DeoVR 的 VR:以头显的时钟为准
对于 VR,应用配合 DeoVR 的 Remote Control 使用,适用于 Meta Quest。它通过 TCP 端口 23554 连接 DeoVR,经你的本地网络在端口 8942 上向头显提供已载入的视频,并根据 DeoVR 报告的播放时间驱动设备。头显中的播放、暂停和跳转都会同步过来,报告时间跳变超过 900 ms 即视为一次跳转。必须先连接设备。
DeoVR 大约每秒报告一次时钟,应用不会在两次报告之间插值。播放 Autoblow 脚本时,漂移检查以该时钟为准,因此可能是拿设备与一个最多约一秒前的时间作比较,而重启阈值是 350 ms。在头显会话期间,桌面播放器的计时器也会继续把 VLC 的时间传给同步引擎;这是否会干扰头显的时钟尚未检验。头显路径只用模拟的 DeoVR 测试过,从未在真实头显上测试。
Offset 设置
Offset 是唯一需要你手动设置的时序控制。如果设备感觉偏晚,就调高它。
- 范围
- −5000 到 +5000 ms,步长 50 ms。全新安装时为 0。
- 按视频保存
- 为每个视频单独保存,最多 200 个视频,最早的先被删除,打开该视频时自动恢复。没有保存值的视频沿用上次使用的 Offset。
- 适用范围
- Autoblow、Intiface 和第二设备路径都适用。没有按设备分开的偏移。
- 在 Autoblow 上
- 通过 Autoblow 的同步脚本偏移指令在设备上应用,与漂移修正一起生效。应用标注正值会让设备提前。
尚未测量的内容
没有记录任何实际同步效果的测量:没有来自真实会话的 Autoblow 往返延迟、漂移或启动偏移,Intiface 和 DeoVR 也都没有。本页和 Autoblow 页面上的阈值描述的是应用的目标,而不是实际达到的效果。你在 AutoScript Sync 截图中可能看到的任何延迟或漂移数值,都是手动输入到图片中的,而不是从设备读取的。基准测试页面列出了哪些已测量、哪些尚未测量。
常见问题
设备感觉偏晚,我该调什么?
以 50 ms 为步长调高 Offset,直到感觉合适。该值会为这个视频保存,下次打开时自动恢复。
我的 Intiface 设备在长视频中逐渐不同步,为什么?
Intiface 主设备从上次播放或跳转起按电脑的计时器运行,没有漂移循环。暂停后再播放,或跳转一下,就能将其重新对齐到视频。
更改 Offset 后需要把脚本重新发送到 Autoblow 吗?
不需要。Offset 在播放期间作为单独的指令发送。更改行程设置则需要重新上传,因为它们会改变适配后的脚本。
同步有多精确?
我们目前还不知道,也不会去猜。规则都写在本页;在任何设备上都没有记录过实际达到的延迟或漂移的测量。
延伸阅读
- Autoblow AI Ultra 配合 AutoScript Sync如何连接、设备令牌,以及 Ultra 支持的功能。
- Intiface 和 Buttplug 设备自带引擎能连接哪些设备,以及测试过哪些。
- 生成流程被同步的脚本是如何生成的,以及它如何按设备适配。
- Funscript 故障排除当脚本播放偏早、偏晚或完全不播放时。