前言
闲来无事, 打算开现场编曲直播, 这不, 记录生活的同时顺带完成了编曲写歌的活儿, 一举多得, 至于会不会翻车, 管他呢, 谁规定唱歌不能跑调了😁
主要还是因为比较懒, 不太喜欢挨个乐器录制剪辑, 这种一步到位的方式比较适合我😂
设备清单
- 运行环境:macOS 10.15.4
- 推流工具: OBS 29.01版本/抖音直播伴侣
- 音频宿主:Reaper
- 声卡: M-Audio M-Track Duo
- 画面采集: 手机摄像头
- 平台:抖音直播
关于虚拟声卡
由于M-Audio M-Track Duo声卡不带lookback通道, 也就是说OBS只能录制声卡输入的声音, 但无法录制乐器和人声混合的声音, 所以需要下载一个虚拟声卡做一个中转桥
当然了, 你如果使用高端声卡, 内置lookback, 可以跳过安装虚拟声卡这一步骤
Mac平台能用的免费虚拟声卡有:
- VB-CABLE macOS 版
- BlackHole 2ch: 直接使用
brew install blackhole-2ch安装 或GitHub下载release pkg安装包 - NNA Virtual Audio:支持 10.15 Catalina+,免费、可配通道数,Intel 通用
- LitLink: 要
macOS 14 Sonoma+ - OBS 自带「macOS Audio Capture」: 要求
OBS 30+版本且macOS 13 Ventura+ - Soundflower:: 10.15.4 基本加载不了
我的Mac是Intel的芯片, 系统也比较老, 能适配的只有VB-CABLE、BlackHole、 NNA Virtual Audio这三个, 秉着哪个能用用哪个的原则, 最后安装了VB-CABLE:

VB-CABLE: 点击进入下载页面
声卡配置
虚拟声卡安装完毕后, 要对Mac系统、OBS和Reaper进行相应的设置
OBS音频设置
OBS → 来源 → 添加 音频输入采集→ 设备选 VB-CABLE → 高级音频属性里把它设推流音轨 1




统一采样率为44.1KHZ:


Mac系统音频设置
前往→实用工具→音频MIDI设置→创建多输出设备:


勾选使用
VB-Cable和USB AUDIO CODEC(这个是M-Audio声卡名称), 然后将USB AUDIO CODEC设为主设备, 并开启VB-Cable的漂移校正功能, 让其跟随主设备同步, 同时采样率也需要统一成44.1KHZ:
我将该多输出设备重命名为
LiveStrem, 以便于区分同时声音偏好设置中, 将输入设为选择为
USB AUDIO CODEC, 输出设备选择为刚创建的LiveStrem:

Reaper宿主音频设置
进入
Preferences→Audio→Device页面, 将输入设备选择为USB AUDIO CODEC, 输出设备选为LiveStrem, 并统一采样率为44.1kHz:
注意: 采样率要确保三端统一, 要么统一48kHz, 要么44.1kHz, 如果混用, 可能会出现音画不同步或者声音音高偏移的问题
声卡信号原理
为什么要做上面这些复杂的设置, 我们需要明白音频的信号流程, 如下:
1 | 吉他 / 话筒 / MIDI键盘 |
虽然OBS音频采集设置中可以选择USB AUDIO CODEC, 也就是外置的M-Audio声卡, 但实际捕获的是输入的声音, 假如你是单纯的直播聊天, 那完全没问题, 只需要将麦克风接到声卡, 观众就能听到你讲话.
但是我们的需求是: 人声不直接通过OBS出去, 而是先作为输入内容进入到Reaper宿主, 经过一系列的效果插件与乐器声音混合后在作为输出内容传到OBS, 进而传递给观众. 问题就出在这一步, OBS采集不到USB AUDIO CODEC的输出内容, 只能采集输入.
因此, 我们需要借助虚拟声卡, 将USB AUDIO CODEC的输出内容复制一份给VB-CABLE虚拟声卡, 然后以输入端的身份进入到OBS, 以此来骗过系统, 而多输出设备的目的就是保证输出信号复制的同时不影响原有USB AUDIO CODEC声卡的输入输出, 堪称完美👍
关于OBS智能采集输入信号的问题, 主要是Mac系统权限导致的, Windows平台不存在这种问题.
直播架构分析
整个直播从技术层面分为三个端。所有音频最终汇聚到声卡,由声卡统一送入 OBS;视频则由多个独立视频源在 OBS 内与音频对齐合成一路后推流。
| 端口 | 角色 | 在本方案中的具体载体 |
|---|---|---|
| 推流端 | 采集、编码、上传音视频 | 本地台式电脑:OBS(编码推流)+ Reaper(编曲混音) |
| 中转端 | 接收、转码、复制、CDN 分发 | 抖音流媒体服务器 / 直播伴侣接入节点 |
| 播放端 | 拉流、解码、渲染画面 | 观众手机抖音 App(含拉流模块 + 播放器) |
链路:吉他/贝斯/话筒/MIDI → 声卡 → Reaper(STREAM BUS) → 声卡 Loopback → OBS → 抖音服务器(中转) → CDN → 观众手机(播放)。
画面采集
关于人脸和背景画面的采集, 我直接使用手机自带的摄像头, 通过Wifi的形式与电脑OBS相连, 要确保两个设备在同一个网络下
这里需要借助一个桥接工具, 那就是Droidcam, 电脑和手机需要同时安装该应用
电脑端的话直接下载OBS专属的Droidcam插件即可, 由于我使用的是OBS29.01的版本, 所以我选择Droidcam2.02的适配版本:
- Droidcam-OBS-Plugin: 点击进入GitHub下载页
- Droidcam官网: 点击进入


而手机端, 直接去APP Store应用市场搜索下载安装即可
两端的Droidcam下载安装完毕后, 打开手机端的Droidcam获取IP地址和端口号:
然后启动电脑端OBS, 添加DroidCam OBS采集:


在IP和端口一栏内填入手机端显示的IP和端口地址:


配置好后点击Activate激活按钮开启连接:

此时我们就能在OBS上实时看到手机拍摄的画面了:

关于音画同步的问题
由于音频和画面走的是两条不同的通道, 加上WIFI网络的不稳定性, 势必会存在延迟问题, 画面比声音晚到, 流程图如下:
1 | 音频:Reaper 混音 → VB-CABLE → OBS,延迟 ≈ 0ms |
假如视频比声音先到, 那么我们可以直接在OBS中给视频添加滤镜延迟, 让其晚一些播出去:


但问题是视频滤镜延迟时间只能填正数而填不了负数, 所以视频比音频晚的问题, 无法通过该方式解决
我们只能考虑将音频推迟, 好在OBS也支持音频时间的偏移设置, 因此, 只需要在高级音频设置中对音频同步偏移数值进行调整即可:


该属性支持正负数设置, 具体设置为多少, 根据自己的实际情况而定,在直播测试过程中进行调整观察从而获取自己满意的点
由于WIFI信号的波动性, 如果换成USB有线连接延迟会更低更稳定, 不过有条件的话最好使用电脑专用摄像头, 体验会更好, 手机毕竟多了一层Droidcam的中转, 这部分的延迟少不了
手机DroidCam USB 和电脑专用摄像头信号链路对比:
1 | 手机摄像头传感器 |
每一层都吃时间:编码约20–40ms,USB 传输约 10–20ms,插件解码约10–20ms,合计 60–100ms起步。
1 | 摄像头传感器 |
UVC 设备把原始 YUV 帧直接通过 USB 推给系统,没有编码、没有隧道、没有插件解码,系统拿到就是能直接用的帧,合计 30–50ms。
硬件接线
- MIDI 键盘 → 电脑 USB(直接进主机,用于触发鼓、和弦音源)
- 吉他、贝斯 → 声卡高阻输入(INST / HI-Z)
- 话筒 → 声卡 XLR 输入(如为电容麦,打开 48V 幻象电源)
- 耳机监听 → 声卡耳机孔(关键:必须硬件直出,绕过系统与 OBS,实现零延迟监听)
- 手机(临时摄像头)→ 与电脑同一 WiFi,装 DroidCam / Iriun App;后期购入 USB 摄像头直接插电脑
- 电脑 → 路由器 → 互联网(上传带宽建议 ≥ 10 Mbps,直播全程有线连接)
- Mac 系统权限:首次使用需到「系统设置 → 隐私与安全性」中,给 OBS 开启「麦克风」「屏幕录制」「辅助功能」三项权限,否则 OBS 抓不到设备和桌面
信号流向
所有声音信号进入声卡后,由 Reaper 统一处理并混成一路干净的直播混音(STREAM BUS,再通过声卡Loopback或虚拟声卡交给 OBS。原则是:监听走声卡硬件,直播走 OBS,两者互不干扰
Reaper 编曲模板
需要给直播创建专用的工程模板, 每次开播直接调用
首先需要创建的基础轨道有:
在 Reaper 中建立专用工程模板(File → Project Templates → Save Project as Template)并保存,每次开播直接调用。核心是单独建立一条「STREAM BUS(直播母线)」,只把要送给观众的声音送进去。
| 轨道路径 | 承载信号 | 是否进 STREAM BUS |
|---|---|---|
| 乐器轨(MIDI) | MIDI 键盘 → 鼓音源 / 和弦音源 | 是 |
| 吉他轨(Audio) | 声卡输入(吉他)→ 软效果器 | 是 |
| 贝斯轨(Audio) | 声卡输入(贝斯)→ 效果器 | 是 |
| 话筒轨(Audio) | 声卡输入(话筒)→ EQ / 压缩 | 是 |
| 节拍器 / 单听轨 | 排练、对点用 | 否(务必排除) |
| STREAM BUS(立体声) | 上述四轨混合后的总和 | 只此一路送 OBS |

关于画中画布局
假设我们需要实现人脸(手机摄像头)作为主画面,Reaper 录屏小窗叠在人脸上方的画中画效果, OBS很容易能实现这一点, 只需要让Reaper窗口采集源和DroidCam OBS采集源同时存在即可:

这两个都是独立视频源,谁在上层谁就盖住下层,直接在预览区拖动/缩放即可,无需额外软件。
| 层(从下到上) | 来源 | 布局做法 |
|---|---|---|
| 底层(全屏) | 手机摄像头(视频捕获设备) | 铺满整个 1920×1080 画布,作为主画面 |
| 上层(画中画) | 显示器捕获 / 窗口捕获(Reaper 界面) | 拖到画面上方或下方,缩放到约 1/4–1/3 大小,作为编曲操作的小窗 |
| 最上层(可选) | 文字 / 歌词 / 标题 | 放在画中画上方或下方,不遮挡操作区 |

OBS 推流设置
| 项目 | 推荐值 |
|---|---|
| 画布分辨率 | 1920×1080;帧率 30 fps(编曲直播足够,60 fps 徒增显卡负担) |
| 编码器 | NVIDIA NVENC H.264(N 卡)/ AMD AMF(A 卡) |
| 码率 | 700–8000 kbps(根据实际上传带宽而定) |
| 关键帧间隔 | 2 秒 |
| 音频编码器 | AAC,44.1kHz,192 kbps,CBR |
开始直播
目前抖音和B站推流码有粉丝门槛, 既然如此, 那就先不播了, 等攒够粉丝再说, 嘿嘿罒ω罒
如果你有推流码, 那直接在OBS中设置页面的直播选项中填入即可, 服务器填直播地址, 推流码填直播密钥:


设置完后点击开始直播:

右下方能看到绿色块同时有码率显示, 就说明推流成功:

注意事项
如果你拿到的推流码是rtmp://push.example.com/live/abc123?txSecret=xxxx&txTime=yyyy这种格式的, 需要以最后一个斜杠作为分界线拆成两部分
带协议的rtmp://push.example.com/live/这部分填入服务器一栏, 后边的abc123?txSecret=xxxx&txTime=yyyy部分填入推流码一栏
OBS在推流时会自动将服务器和串流密钥内容拼接起来发出去,等价于原完整地址
分阶段落地路线表
| 阶段 | 动作 | 目标 |
|---|---|---|
| 阶段 1:通链 | 接好声卡/吉他/话筒/MIDI,Reaper 出声并听到监听(监听开关设 USB) | 能弹奏演唱,自己听着不延迟 |
| 阶段 2:路由 | 建 STREAM BUS + 多输出设备(VB-CABLE),OBS 捕获到干净混音 | OBS 音频混音器只有直播声、无系统杂音 |
| 阶段 3:视频 | 加入手机摄像头 + 录屏(窗口捕获) | 人脸、编曲界面两个画面源齐备 |
| 阶段 4:画中画 | 录屏小窗叠在人脸上方,源排序、缩放到位 | 布局成型,可随时换 USB 摄像头 |
| 阶段 5:同步 | 拍手录屏测延迟,给各视频源分别加补偿滤镜 | 音画对齐 |
| 阶段 6:试推 | 先本地录制核验,再填 RTMP 试推小范围 | 无爆音、无漂移 |
| 阶段 7:上线 | 正式开播,关注电平、延迟、网络 | 稳定直播(如需可常驻) |
常见问题与红线清单
- 节拍器进了直播间 → STREAM BUS 路由排查,排练信号不要送观众。
- 桌面音频没关,观众听到微信提示 → 禁用 OBS 桌面音频捕获。
- 嘴型对不上 → 给摄像头加视频延迟滤镜,只延视频。
- 越播越漂移 → 检查四处采样率是否统一为 48kHz。
- 中途切场景导致断流 → 不要动音频源,只切换画面层。
- 合规提醒:抖音对纯录播/无人挂机治理严格;本方案为真人实时编曲弹唱,属合规边内,仍建议有人值守、及时互动。
本文为作者原创 转载时请注明出处 谢谢
