把视频转换为 Funscript
用 AutoScript Sync 从视频生成 funscript,只需打开视频并按下 Generate。应用会在你自己的电脑上采样帧,测量画面中运动部分的动作,在每次方向变化处把它转换为 0 到 100 的位置,并在同一文件夹中保存 <video name>.funscript。视频从不上传。
已于 2026 年 9 月 21 日对照应用代码核实。描述的是当前版本 2.121.1。
它能打开哪些视频文件
Open Video 对话框列出 MP4、MKV、AVI、MOV 和 WMV,并有 All Files 选项。拖放、Batch Generate Folder 和 Play Folder as Playlist 还支持 WebM 和 M4V。
没有固定的编解码器列表。分析时,应用通过 OpenCV 内置的 FFmpeg 解码,先请求硬件解码(使用你的显卡驱动提供的任何加速器),如果编解码器、驱动或第一帧不配合,就退回到软件解码。播放时使用 VLC,嵌入在应用自己的窗口中。所以只要该 FFmpeg 和你安装的 VLC 能读取某个文件,它就能播放和转换;我们没有测试过、也没有发布编解码器列表。
VR 视频同样可用。分析前,应用会检测左右并排或上下排列的格式,以及鱼眼或等距柱状投影,并把一只眼睛的中心视图展开成普通的平面画面。这种检测是基于少量采样帧的启发式判断。
视频经历了什么,一步一步说明
下面的一切都在你的电脑上运行。分析代码中没有任何网络调用,不会有视频、帧或缩略图通过互联网发送。
- 解码并采样。Accuracy 决定分析哪些帧:Fast 为每 4 帧取 1 帧,Balanced(默认)为每 3 帧取 1 帧,High 为每 2 帧取 1 帧。无论源分辨率是多少,每个采样帧都会缩小到 320 px 宽。一个工作线程提前解码,使解码和分析同时进行。
- 找到运动区域。除非你自己画了区域,否则引擎会建立一张动作持续发生位置的热图,取最热的区域并向外扩展 15%。场景切换通过帧与帧之间的突变来识别。
- 测量动作。DIS 光流测量区域内的运动。如果安装了姿态和深度模型,身体关键点和朝向或远离镜头的读数会提供更多候选位置信号。后台还会读取视频自身的运动矢量和音轨的响度包络,每项都有时间限制,所以在长影片上它们可能只覆盖其中一部分。
- 建立位置轨迹。测得的运动被积分为随时间变化的位置,并与一个锚点融合,该锚点由对该视频得分最高的位置信号构建。在追踪中断的地方,会按周围行程的节奏延续运动来填补空缺,有音频节拍时还会与节拍保持一致。第二轮处理可以用完整帧率重新读取少数被标记的时段(最多四个)。
- 放置点。每个 2 秒窗口按动作类型标注,行程幅度随画面运动的快慢而变化,并经过你选择的强度曲线(默认为 Smoothed)。每次方向变化处放置一个点,所以没有固定的点速率。
- 保存。脚本写在视频旁(见下一节)。
各阶段背后的 AI 模型更深入地解释了光流、姿态和深度部分。
适合转换的视频,以及不适合的视频
由于引擎依据测得的运动工作,当你想生成脚本的动作是画面中最主要的运动并且始终可见时,效果最好。
转换效果好
- 画面某一区域中一个清晰、重复的运动。运动热图挑出的正是这种运动。
- 稳定的节奏。空缺填补和节奏整理依赖周围的行程,所以规律的运动能挺过短暂的中断。
- 慢到中等的节奏。在较慢的场景中,行程幅度与手工制作的脚本接近。
转换效果差,以及该怎么办
- 有其他东西运动得更明显。区域查找会跟随最强的运动,而那可能不是你关心的部分。用 Set Motion Region… 自己画出区域,或者用 Live Track 在视频播放时移动一个框;轨迹会以
.roitrack.json文件保存在视频旁。 - 动作被遮挡。追踪中断时,空缺按节奏填补而不是实测。被填补的比例会被记录下来,比例较高时质量报告会发出警告。
- 非常快的动作。快节奏场景中行程会偏小,采样率越低越明显。试试 High,或者在时间轴上对该段使用 Amplify。
- 长时间没有动作。动作范围之外的片头和片尾会保持静止,但在动作范围内,引擎往往会在人工会让脚本静止的地方继续生成行程。请在时间轴上删除这些点。
- 几乎静止的视频。如果显示真实运动的采样少于 5%,应用会拒绝生成脚本,并告诉你视频看起来是静止的。
.funscript 写在哪里
<video name>.funscript- Generate 之后,以及 Batch Generate Folder 处理完每个文件之后,自动保存在视频所在的文件夹中。下次打开该视频时,应用会自动载入它。
<video name>.funscript.bak- 执行 Generate 时,任何已使用该名称的脚本都会先复制到这里。只保留一个备份;下一次 Generate 会替换它。
<video name>_as_played.funscript- 仅当你选择 File → Export Script (as played) 时生成:固化了你的行程设置,供其他播放器使用。
%USERPROFILE%\.autoscript_sync\logs\gen_*.json- 每次 Generate 或每个批处理文件生成一份诊断报告,保留最近的 40 份。它记录视频的文件名,从不记录其所在文件夹或任何内容。
Generate + Play(即时)不会保存脚本;如果想保留它生成的内容,请使用 File → Save Funscript As…。Funscript 生成器概览介绍了运行转换的三种方式。
如何检查结果
- 播放。在应用的播放器中带着脚本观看视频,连接或不连接设备均可。
- 查看时间轴。留意应有动作却平直的时段、空闲时段中的行程,以及行程看起来过浅的时段。选中有疑问的时段,用 Re-analyze 以完整帧率重新分析。
- 打开质量报告。Help → Last Generation Quality… 显示实测与填补各占多少、追踪漂移和恢复情况,每项都附带可采取的措施。只有在出现警告时它才会自动打开。
- 检查文件。Funscript 校验器会在你的浏览器中检查 JSON、时间戳、位置和速度。
- 绘制运行图表。Report Studio 会打开脚本及其
gen_*.json报告,绘制行程频率、速度以及 AI 识别出的内容。它无法打开 Export Diagnostics 生成的.zip;请先解压。
如果转换出了问题
- 脚本跟随了错误的动作:用 Set Motion Region… 或 Live Track 手动设置区域,然后再次 Generate。新的区域意味着要重新完整分析视频,所以预计耗时与第一次运行差不多。
- 生成非常慢:AI 可能在 CPU 上运行。按下 Check GPU,查看分析是否真的在你的显卡上运行。
- 文件无法打开或播放:尝试换一种容器格式或重新编码;解码依赖 OpenCV 的 FFmpeg,播放依赖 VLC。
- 设备感觉滞后:调高 Offset(−5000 到 +5000 ms,步长 50 ms,按视频记忆)。Funscript 故障排除介绍了其他播放问题。
常见问题
4K 视频比 1080p 视频耗时更长吗?
无论源分辨率如何,分析本身都在每个采样帧的 320 px 宽副本上运行(High 会对追踪区域额外进行一次 640 px 的运动测量),所以每帧的 AI 工作量几乎不变。不过解码更大的文件仍然更耗时,我们还没有发布按分辨率划分的耗时数据。
转换需要联网吗?
不需要。分析离线运行。互联网用于分析之外的事情:激活许可证、检查更新、下载模型,以及 Autoblow AI Ultra 的云端。
我可以转换整个文件夹吗?
可以,使用 File → Batch Generate Folder。它会跳过已有脚本的视频,并且不查找子文件夹。
每一帧都会被分析吗?
不会。即使 High 也是每 2 帧分析 1 帧。你可以在时间轴上选中一段,用 Re-analyze 以完整帧率重新分析。
延伸阅读
- 如何制作 Funscript手工、AI,或两者结合:每种方式适合什么场合。
- 在 Windows 上安装GPU 与 CPU、安装程序包含什么、你的数据存放在哪里。
- 引擎中的光流DIS 光流如何测量追踪区域内的运动。
- 哪些内容留在你的电脑上应用建立的每一个网络连接,以及每个连接发送的内容。