K7DJ

开启声卡Loopback后OBS音画不同步?教你如何精确计算并设置音频延迟补偿

7 0 音频极客阿哲

相信不少做电音直播、DJ打碟或者录屏的老哥都遇到过这个问题:声卡开启 Loopback(内录/回放) 功能把DAW(机架)的声音拉进OBS之后,直播间里说话、敲打击垫或者对拍的动作,总是和声音对不上。

要么是声音比画面快,要么是画面比声音慢,调小了声卡缓冲区(Buffer Size)还是解决不了。

今天不整玄学,直接从路由原理、物理延迟测算这两个维度,教大家怎么把OBS里的音画同步精度压到毫秒(ms)级。


一、 为什么开了Loopback会产生音画不同步?

要解决问题,得先知道这十几到几百毫秒的延迟是怎么来的。这里面有两个互相独立的“延迟源”:

1. 视频采集延迟(大头在此)

无论是USB摄像头、单反/微单(通过采集卡),还是手机投屏,视频信号从镜头捕获,经过芯片硬件编码,再通过USB传输到电脑,最后由OBS解码渲染,这个过程存在极大的物理延迟

  • 普通USB摄像头:约 80ms - 150ms 延迟。
  • 相机 + 4K采集卡:约 60ms - 120ms 延迟。
  • 手机无线投屏:可能高达 200ms - 500ms

2. 音频路由延迟(小头,但复杂)

当你在DAW里挂了插件,声音走的是ASIO驱动:

  • DAW内部延迟 = 缓冲区大小(如128 Samples) / 采样率(如48000Hz)× 2(输入+输出) ≈ 5.3ms
  • 加上你挂的各种高精度恐龙、Ozone等母带限制器插件(Linear Phase线性相位插件会产生巨大的前瞻延迟,有时单插件就超过50ms)。
  • Loopback路由:声卡将ASIO输出的信号在硬件/驱动层内部桥接到一个虚拟输入通道,再由OBS通过WDM/WASAPI驱动读取。这里又会产生一次驱动转换延迟(约10ms - 30ms)。

核心矛盾:

通常情况下,视频采集的延迟(约100ms)远大于音频路由的延迟(约30ms)。这就导致你的声音比画面先出来(音频超前)。我们需要在OBS中对音频进行正向延迟补偿,让声音“等一等”画面。


二、 如何精确测算你系统的音画延迟差?

别再去用嘴对着麦克风拍手然后用肉眼估算了,人眼对50ms以下的误差极不敏感,但观众能明显察觉到“不对劲”。这里介绍一个物理精确测量法:重合对比录制法

准备工具:

  1. OBS(开启你的常规直播场景,包括摄像头和Loopback音频)。
  2. 一个带有时钟指针或毫秒级计时器的网页(在浏览器搜索 "Millisecond Timer" 或 "毫秒计时器")。
  3. 任意视频剪辑软件(PR、剪映、DaVinci等均可)。

测算步骤:

第一步:录制测试素材

  1. 在电脑屏幕上打开毫秒计时器。
  2. 确保摄像头能清晰拍到这个屏幕(或者直接在OBS里新建一个“浏览器源”抓取这个计时器,同时用摄像头拍着你的手)。
  3. 做一个极具冲击力的动作并发出声音:比如用手用力拍桌子,或者用鼓棒敲击打击垫。确保摄像头拍到了手接触桌面的那一瞬间,且麦克风/机架完美录下了这一声脆响。
  4. 在OBS里点击“开始录制”,重复上述拍击动作5次,然后停止录制。

第二步:导入剪辑软件精准读数

将录好的视频拖入剪辑软件,将时间单位切换为帧(Frame)毫秒(ms)

  1. 寻找视频帧:在轨道上逐帧移动,找到你的手刚刚接触到桌面的那一帧(或者计时器数字跳动的那一瞬间),记录此时的时间戳 $T_1$(例如:00:01:12.120)。
  2. 寻找音频波形:在音频轨道上,找到这一下拍击声波形振幅突变、刚刚开始起音(Transient)的那一帧,记录此时的时间戳 $T_2$(例如:00:01:12.020)。
  3. 套用计算公式
    $$\Delta T = T_{视频} - T_{音频}$$
    • 如果以毫秒为单位:$120\text{ms} - 20\text{ms} = 100\text{ms}$。
    • 这说明音频比视频快了 100 毫秒

三、 在OBS中设置高精度延迟补偿

拿到精准的数值后,设置起来就很简单了。

  1. 打开OBS,在下方【混音器】面板中,找到你的 Loopback/声卡输入源
  2. 点击该音轨右侧的三个点(齿轮图标),选择 【高级音频属性】(Advanced Audio Properties)
  3. 找到你的声卡输入源,在 【同步偏移】(Sync Offset) 这一栏输入你刚才计算出的数值。
    • 如果声音快于画面(常见情况):输入正值。例如输入 100 ms。
    • 如果画面快于声音(极少见,除非机架挂了延迟极高的母带墙):输入负值。例如输入 -50 ms。

(注意:OBS的同步偏移单位是毫秒。设置完成后,可以重新录一段测试视频放进剪辑软件验证,波形起音点与画面撞击点应该完美重合在同一帧。)


四、 规避音画不同步的硬核避坑指南

除了设置延迟补偿,还有几个由系统底层机制引发的“延迟漂移”和爆音问题,必须顺手解决:

1. 全局采样率必须强制一致

这是90%的人音频越播越卡、或者音画延迟越来越大的元凶。
请务必检查并确保以下四个地方的采样率完全一致(推荐全部统一为 48000Hz / 48kHz,因为视频广播标准是48k):

  • Windows系统播放/录制属性:控制面板 -> 声音 -> 播放/录制设备 -> 属性 -> 高级 -> 默认格式(改成 24位, 48000Hz)。
  • 声卡控制面板(ASIO Control Panel):Sample Rate 设为 48.0 kHz。
  • DAW(机架)工程设置:Project Sample Rate 设为 48kHz。
  • OBS音频设置:设置 -> 音频 -> 通用 -> 采样率 -> 改为 48kHz。

2. 慎用具有“前瞻(Look-ahead)”功能的插件

在直播用的机架通道上,尽量避免使用高精度的限制器(Limiter)或动态处理器(如 FabFilter Pro-L 2 的 Safe/Oversampling 模式)。这些插件为了防止过载,会强制在宿主里产生几十毫秒的延迟来“预读”音频。

  • 解决方法:直播时,限制器改用“LL”(Low Latency)低延迟模式,或者使用硬件压限。

3. 视频采集源禁用“使用自定义音频设备”

在OBS的“视频采集设备”属性里,有一个“使用自定义音频设备”的勾选项。如果是用采集卡,千万不要在这里直接提取采集卡的音频,这会导致音视频时钟不同步。

  • 正确做法:将视频与音频设备在OBS里分开添加,视频只负责画面,音频由专门的“音频输入采集”引入,这样它们在OBS的混音引擎里才能获得独立的同步时钟。

评论