播放录制的视频,发现声音好端端地放着,画面却在某段卡住,或越往后视频和声音越来越错开,那原因几乎只有一个。视频以可变帧率(VFR,Variable Frame Rate)录制了。解决的核心是强制固定帧率(CFR,Constant Frame Rate)并把捕捉FPS固定为一个值。本文按顺序整理在录制阶段堵住问题的方法,以及救活已经卡住文件的方法。
为什么声音正常却只有画面卡住
声音通常以恒定速度流动。而画面会因电脑情况而每秒帧数变化。游戏变重的瞬间60fps掉到54fps、然后又回升,就是这样。这种帧间隔参差不齐的文件就叫可变帧率(VFR)。
录制文件里用时间戳记录着每一帧应当在何时显示。VFR文件这个间隔并不一致,而编辑器或部分播放器却假定帧间隔总是相同来播放。所以在空缺的区间里它就抓着前一帧不放,看起来画面像卡住了,而声音按自己的速度继续流动,于是越来越错开。
第1步:在录制程序里强制固定帧率(CFR)
最确切的解决不是去修卡住的文件,而是从一开始就以固定帧率录制。以OBS Studio为例,可以在设置里强制固定帧率。

- 在OBS 设置 > 视频里把FPS固定为整数值(例如60)。
- 在 设置 > 输出里把输出模式改为高级。
- 进到录像选项卡,找到自定义muxer设置框。
- 在那个框里输入 force-cfr=1 来强制固定帧率。
- 应用后短暂试录一下,确认结果文件不卡。
第2步:把捕捉FPS固定为一个值
就算开了固定帧率选项,捕捉本身晃动的话效果也会减半。屏幕捕捉FPS和游戏帧率以不同速度走动时,录制器就会填充或丢弃空帧,又会产生卡顿。
- 录制FPS定为游戏能稳定维持的值。60fps经常崩就降到30fps,卡顿更少。
- 把游戏内帧率限制(例如60)和录制FPS设成同一个值。
- 用无边框窗口模式代替全屏(独占)模式,捕捉往往更稳定。
- 录制时关掉后台的重型程序,缩小帧率波动幅度。
第3步:救活已经卡住的文件(CFR重新编码)
如果已经录好的视频卡住,用免费工具HandBrake做固定帧率重新编码即可。它是在重新编码的同时,把参差不齐的帧间隔重新铺成一致的方式。
- 把卡住的原始文件导入HandBrake。
- 在Video选项卡里把Framerate指定为60(或原始基准值)。
- 把下面的选项选为Constant Framerate(固定帧率)。
- 按Start Encode生成新文件,再确认卡顿是否消失。
编辑器兼容:放上去之前先对齐为CFR
Premiere Pro、达芬奇、GOM Mix等编辑器以固定帧率为前提运作。把VFR原始素材直接放上去,从做切剪的那一刻起声音和画面就开始错开。所以剪辑前用上面1~3步把固定帧率对齐好最安全。像无畏契约或绝地求生这种瞬间帧率波动大的游戏,这项作业的效果越大。
从一开始就少卡顿的录制:DOR(DOR)
如果每次都手动对齐上面这套流程太麻烦,那么在录制阶段就以固定帧率为默认的工具会更省事。DOR(DOR)以固定帧率录制,画面卡顿和音画不同步都少。把录制的文件直接放进编辑器,很多情况下无需额外转换,画面和声音就对得上。

总结一下,核心有两点。在录制程序里强制固定帧率(CFR),并把捕捉FPS固定为游戏能撑住的一个值。只要守住这两点,声音正常却只有画面卡住的现象大多就会消失。已经卡住的文件用HandBrake重新编码或编辑器重新导出救活即可。

