漂移校正与同步时序

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 的云端控制;电脑从不直接连接它,而且播放时两者都需要联网。应用不会向它实时串流位置,而是:

  1. 连接后,应用对四次状态请求的往返时间取平均,并显示为 API N ms
  2. Send Script to Device 把按设备适配后的脚本上传一次。之后由 Ultra 自己播放整个脚本。
  3. 播放时,应用在当前视频时间加上实测往返时间的一半处启动设备。暂停时停止设备。
  4. 跳转时,应用在新的时间点重新启动设备,同样加上往返时间的一半,并在 200 ms 内暂停漂移检查。
  5. 播放期间,漂移循环会把设备自身的脚本时钟与视频进行比较,如下所述。

播放期间,应用会维护往返时间的平滑平均值及抖动估计,并在每次启动和重新启动时使用其一半。

漂移循环

漂移等于从 Autoblow 状态接口读取的设备脚本时间减去视频时间。第一次检查在播放或跳转后约 1 秒进行。此后循环间隔从 3 秒开始,任何校正后降到 1.5 秒,每次检查无异常则增加 0.5 秒,最长 5 秒。

Autoblow drift tiers Drift from 0 to 80 ms is left alone. From 80 to 350 ms it is trimmed through the script offset, at most 40 ms per check and 250 ms in total. Above 350 ms the device is restarted at the video position plus half the round trip. Left alone Trimmed through the offset Restart 0 ms 80 ms 350 ms Drift between the device's script clock and the video Trim: 60% of the drift per check, ≤ 40 ms a step, ≤ 250 ms in total Restart at video time + ½ round trip
这两级漂移阈值是代码中的常量,而不是在设备上实测的行为。

循环何时让步

  • 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 在播放期间作为单独的指令发送。更改行程设置则需要重新上传,因为它们会改变适配后的脚本。

同步有多精确?

我们目前还不知道,也不会去猜。规则都写在本页;在任何设备上都没有记录过实际达到的延迟或漂移的测量。

延伸阅读

用你自己的视频试试

试用期为一天,在你自己的电脑上运行;你的视频在本地分析,从不上传。