AI 视频防抖:快速修复抖动画面
把防抖强度调高,画面通常反而更糟。本文讲清强度设置真正控制的是什么、背后的实测数据,以及如何一次选对。
一句话总结
Flixly 的 Video Stabilizer 在浏览器中使用 ffmpeg 的 deshake 滤镜运行,视频从不上传。Light、Medium 和 Strong 设定的是搜索匹配帧的范围(16、32 或 64 像素),而不是校正力度。搜索范围超出抖动幅度会引入额外抖动,所以请从 Light 开始。限制为 30 秒和 60MB,每个任务 5 积分,仅在成功时扣除。
把防抖强度调高,你的画面通常反而会更糟。
这与所有剪辑软件里的所有滑块教给你的直觉恰恰相反,也是你在使用这个工具之前最值得了解的一点。
下面说明实际发生了什么、这个设置为何如此表现,以及如何第一次就选对。
防抖工具实际做了什么
它估算摄像机在相邻两帧之间移动了多少,然后把每一帧反向平移,以抵消这段移动。
仅此而已。没有模型,没有生成,也不会重新诠释你的画面。你拍下的像素就是你拿回的像素,只是位置移动了。
Video Stabilizer 在你的浏览器中运行,而不是在服务器上。你的片段不会被上传到任何地方。它被读入内存,用编译为 WebAssembly 的 ffmpeg 在本地处理,然后直接作为下载文件交还给你。
对于受保密协议约束、尚未发布,或者单纯不想让别人看到的素材,这一点比任何画质上的考量都更重要。
为什么刻意不用 AI 模型
Flixly 在生产环境中运行 37 个视频生成模型。没有一个能为画面防抖,这个工具也不会让它们去做。
这一点值得直说,因为网上充斥着相反说法的文章,把 Veo 或 Kling 这类生成模型和防抖参数、积分费用列在一起。那些数字是编造的。文生视频模型根本没有可用于防抖的视频输入通道。
我们之所以知道,是因为我们自己就上线过这个 bug。
早期的一个 "Stabilize" 特效会把任务派发给一个无法接收视频输入的生成式模型。上传的文件被悄无声息地丢弃。用户等了半天,最后收到一段毫不相干的全新片段,外加一笔退款。解决办法就是不再假装生成式模型能完成确定性的工作。
防抖是运动补偿。它需要真正的视频滤镜,所以这个工具用的就是视频滤镜。
被用反了的设置
三档强度:Light、Medium、Strong。
它们控制的不是校正施加得有多用力,而是滤镜搜索的范围——在上一帧中寻找匹配区域时,每个轴向搜索 16、32 或 64 像素。
搜索范围一旦超出摄像机的实际移动幅度,滤镜就会开始找到错误匹配。它锁定错误的区块,朝它校正,从而加入原始画面中从未有过的抖动。
我们在三种抖动幅度的合成片段上进行了测量,以帧间平均差异计分,数值越低越稳定:
| 源素材抖动 | 未处理 | Light | Medium | Strong |
|---|---|---|---|---|
| 小,每帧约 4px | 5.51 | 5.84 | 7.04 | 9.46 |
| 中,每帧约 12px | 11.30 | 8.73 | 10.85 | 16.06 |
| 大,每帧约 50px | 32.34 | 26.32 | 23.87 | 22.63 |
把中间那一行再读一遍。
在典型的手持抖动上,Light 得分 8.73,Strong 得分 16.06。Strong 并不是更强的修复。它比什么都不做还差,而不处理的得分是 11.30。
只有真正剧烈的抖动——边走边拍、跑动拍摄,每帧大约 50 像素的移动——才值得用 Strong。即便如此,相比 Light 的提升也很有限。
从 Light 开始。只有不起作用时才往上调。 这就是全部技巧。
它无法让本来稳定的画面更好看
再看看表格的第一行。对于本来就稳定的画面,每一档设置的得分都比不处理更差。
这是修复特定缺陷的工具,不是润色工序。把它用在三脚架或稳定器拍摄的镜头上,只会让效果变差,还要为此花掉积分。
如果你的画面已经稳定,只想让它更好看,你需要的是别的工具:用视频特效调整风格和色调,或用视频高清放大提升分辨率。
裁剪的取舍
为抵消抖动而平移每一帧,会在边缘露出空白楔形区域,因为画面移动了,画布却没有动。
你有两个选择。保留边缘,接受明显晃动的边框;或者稍微裁剪并放大,让移动的画面始终填满画布。
裁剪缩放默认开启,而且几乎总是正确的选择。代价是边缘少量构图损失,以及放大带来的轻微变软。另一种选择则是每一帧都有一条抢眼的边框。
如果知道片段需要防抖,拍摄时构图比需要的稍宽一些,这个取舍就不复存在了。
上传前需要了解的限制
每个片段三十秒。每个文件六十兆字节。支持 MP4、MOV 或 WebM。
工具会在你选择文件的那一刻检查这两项限制,而不是渲染之后,因此超长片段会立即提示,不会浪费你的时间。
视频更长?把它切成不超过三十秒的片段,逐段防抖,再拼接起来。由于处理在本地进行,多跑几遍除了时间之外没有任何成本。
费用
每个任务固定 5 积分。不按秒计费,也不随分辨率变化。
只有渲染成功后才会扣费。失败的任务不收费,也没有退款流程,因为根本没有需要退的钱。当前积分价格见定价页面。
可靠的工作流程
先防抖,在任何其他处理接触画面之前。
后续每一步都会继承底层画面的运动。先调色,抖动就被调进了色彩里。先放大,抖动就被锐化了。先剪辑,每个片段就会以不同的参考帧来防抖。
有了稳定的画面,后续流程就能顺利进行:送到视频特效调整风格,送到视频高清放大提升分辨率,用自动字幕添加烧录字幕,或用 Shorts 生成器剪出社交媒体版本。如果片段包含对白,Lip Sync 需要稳定的头部才能跟踪。
什么时候应该在拍摄时解决
防抖能消除抖动,却无法凭空还原被运动模糊破坏的细节。
在弱光下快速手持移动会产生拖影画面,防抖工具还给你的将是稳定但依旧拖影的画面。如果源素材是模糊而非抖动,再多后期处理也无法挽回。
用更快的快门速度拍摄,靠在稳固的物体上,把防抖工具留给那些无法重拍的镜头。
常见问题
为什么最强的防抖设置反而让视频更糟?▾
该设置控制的是滤镜在上一帧中搜索匹配块的范围,而不是校正力度。搜索范围超出摄像机的实际移动幅度,就会找到错误匹配并引入抖动。在典型的手持抖动上,Light 档的测量结果优于不做处理,而 Strong 档的结果比原始片段还差。
防抖时我的视频会被上传到服务器吗?▾
不会。防抖完全在你的浏览器中运行,使用编译为 WebAssembly 的 ffmpeg。片段被读入内存、在本地处理,然后作为下载文件交还给你,因此视频永远不会离开你的设备。
可以防抖多长的片段?▾
每个片段最长 30 秒,每个文件最大 60MB,支持 MP4、MOV 或 WebM。两项限制都在你选择文件时检查,而不是渲染之后。更长的视频请切成不超过 30 秒的片段,分别防抖后再拼接起来。
防抖需要多少积分?▾
每个任务固定 5 积分,与片段时长和分辨率无关。只有渲染成功后才会扣费,失败的任务不收取任何费用。当前积分价格请查看定价页面。
AI 视频模型能代替防抖工具稳定画面吗?▾
不能。文生视频和图生视频模型没有可用于防抖的视频输入通道。Flixly 在生产环境中运行 37 个视频生成模型,没有一个能做防抖。防抖是确定性的运动补偿,需要真正的视频滤镜,而不是生成式模型。
为什么防抖会轻微裁剪我的视频?▾
为抵消抖动而平移每一帧,会在画面边缘露出空白楔形区域。裁剪缩放会去掉这些区域,让移动的画面始终填满画布。该选项默认开启,因为不开启就会出现明显晃动的边框。如果知道片段需要防抖,拍摄时构图稍微放宽一些。
应该在剪辑之前还是之后防抖?▾
之前。后续每一步都会继承底层画面的运动,所以先调色会把抖动固化进调色结果,先放大会让抖动更清晰。先防抖,再调色、放大、加字幕或剪辑。
