OBS 推流设置指南
正确配置 OBS 参数,确保直播画面流畅、音画同步、无卡顿
为什么要正确设置 OBS?
OBS 的参数直接影响观众的观看体验。如果设置不当,会出现以下问题:
| 问题 | 原因 | 观众感受 |
| 画面卡顿 |
分辨率过高(1080p)导致编码/解码 CPU 负载过重 |
每 3-10 秒卡一次,画面不连贯 |
| 音画不同步 |
关键帧间隔不是 2 秒,音频时间戳漂移 |
声音和画面错位,主播说话对不上口型 |
| 画面模糊 |
码率过低,运动场景出现马赛克 |
画质差,细节丢失 |
| 延迟过大 |
缓冲累积,观众看到的画面比主播延迟几十秒 |
聊天不同步,互动体验差 |
| 推流断开 |
码率超过网络上传带宽 |
直播频繁中断,观众看到黑屏 |
| 画面反复卡死循环 |
音频采样率与设备不匹配,音频缓冲堆积、音频严重滞后 |
画面流畅几秒 → 卡住几秒 → 恢复 → 再卡住,无限循环 |
正确设置后:画面流畅无卡顿、音画同步、延迟 1-3 秒、所有观众看到的画面基本一致。
下载和安装 OBS
电脑端
- 访问 OBS 官网:https://obsproject.com
- 下载对应系统的版本(Windows / macOS / Linux)
- 安装后打开 OBS Studio(不要用 OBS Streamlabs,它更重)
手机端
- iOS / Android:搜索 "Prism Live Studio"(免费,支持美颜滤镜)
- 打开 App → 设置 → 推流 → 选择 "SRT 推流"(推荐)或"自定义 RTMP"
- 输入推流地址(在 DurianLive 控制台获取)
- 设置分辨率:竖屏直播选 720x1280,横屏直播选 1280x720
- 点击开始直播
其他免费手机推流App:Larix Broadcaster(iOS/Android,免费版有水印)、RTMP Streamer(Android,免费无水印)
视频设置 推荐
OBS → 设置 → 视频(Video)
| 参数 | 推荐值 | 说明 |
| 基础分辨率 |
1920x1080 |
采集源分辨率,保持 1080p 即可 |
| 输出分辨率 |
1280x720 |
必须 720p。1080p 会导致观众端 CPU 负载过高,画面卡顿 |
| 缩放过滤 |
Lanczos |
画质最好的缩放算法 |
| 帧率(FPS) |
30 |
直播 30fps 足够。60fps 码率翻倍,网络压力大 |
为什么不用 1080p?
1080p 的像素量是 720p 的 2.25 倍。观众端浏览器需要软解码 FLV 流,1080p 解码会占满主线程 CPU,导致画面卡顿。720p 在所有设备上都能流畅播放。
输出设置(编码器、码率、关键帧) 关键
OBS → 设置 → 输出(Output)→ 模式选择"高级"
编码器选择
| 编码器 | 说明 | 推荐度 |
| NVIDIA NVENC H.264 |
使用 GPU 编码,CPU 几乎不占用 |
首选 |
| AMD HW H.264 |
AMD 显卡硬件编码 |
首选 |
| x264(软件编码) |
使用 CPU 编码,占用高但兼容性好 |
备选 |
如何选择?如果你的电脑有独立显卡(NVIDIA/AMD),务必选择硬件编码器(NVENC/AMD HW)。CPU 编码在直播时会占用大量 CPU,可能导致其他程序卡顿。
码率设置
| 参数 | 推荐值 | 说明 |
| 码率控制 |
CBR(固定码率) |
直播必须用 CBR,不要用 VBR |
| 视频码率 |
3000-4000 kbps |
720p 最佳码率范围。低于 2000 会模糊,高于 6000 浪费带宽 |
| 关键帧间隔 |
2 秒 |
必须 2 秒!不设置会导致音画不同步 |
| 预设 |
P4(NVENC)或 veryfast(x264) |
平衡画质和性能 |
| Profile |
high |
兼容性最好 |
关键帧间隔必须 2 秒!
关键帧(Keyframe)是视频流的同步基准。DurianLive 的 HLS 分片也是 2 秒一个。如果关键帧间隔不是 2 秒:
• 音频和视频时间戳会漂移 → 每 30 秒出现一次音画不同步
• HLS 分片无法正确对齐 → 观众端播放器报错
• 画面周期性卡顿(3 秒正常 10 秒卡)
设置方法:输出 → 高级 → 关键帧间隔填 2
码率和上传带宽的关系
你的上传带宽必须大于视频码率 + 音频码率 + 20% 余量:
| 视频码率 | 音频码率 | 总码率 | 最低上传带宽 |
| 3000 kbps | 128 kbps | 3128 kbps | 4 Mbps |
| 4000 kbps | 128 kbps | 4128 kbps | 5 Mbps |
| 6000 kbps | 128 kbps | 6128 kbps | 8 Mbps |
测试上传带宽:访问 speedtest.net,查看 Upload 速度。如果上传带宽不足,降低视频码率到 2000-2500 kbps。
音频设置 重要
OBS → 设置 → 输出(Output)→ 音频(Audio)
| 参数 | 推荐值 | 说明 |
| 音频码率 |
128 kbps |
标准音质,兼容性最好。不要低于 96kbps,不需要高于 160kbps |
| 音频编码器 |
AAC |
必须用 AAC,不要用 MP3 或 Opus |
| 采样率 |
48 kHz |
必须与你的音频设备一致(通常是 48kHz),不要用 44.1kHz |
采样率不匹配会导致音频严重滞后(实测踩坑):
Windows 的 WASAPI 音频设备通常是 48 kHz。如果 OBS 音频采样率设置为 44.1 kHz,实测日志出现:
Source 桌面音频 audio is lagging (over by 128490.74 ms) at max audio buffering. Restarting source audio.
• 音频滞后 > 128 秒,OBS 被迫重启音频源
• 音频缓冲一路涨到上限 Max audio buffering reached!(46ms → 1044ms)
• 推流端视频编码器卡住 → 观众端视频时间戳停住、画面卡顿循环
解决方法:
OBS → 设置 → 音频 → 采样率 改为 48 kHz(与设备一致),改完重启 OBS再推流。
为什么音频设置很重要?
音频时间戳和视频时间戳必须严格同步。如果音频采样率与设备不匹配,OBS 会不断累积音频缓冲(audio buffering),最终触发"Max audio buffering reached"被迫重启音频源,导致推流中断和观众端卡顿。
推流地址配置
OBS → 设置 → 推流(Stream)
| 参数 | 值 | 说明 |
| 服务 |
自定义 |
选择"Custom..."自定义服务器 |
| 服务器(RTMP) |
rtmp://你的域名:1935/live/ |
RTMP 协议,兼容性最好,OBS 默认 |
| 服务器(SRT) |
srt://你的域名:10080 |
SRT 协议,低延迟,抗丢包(高级用户) |
| 推流密钥 |
你的推流密钥 |
在 DurianLive 控制台获取,每个直播间唯一 |
RTMP vs SRT 对比
| 协议 | 延迟 | 抗丢包 | 配置难度 | 推荐场景 |
| RTMP |
3-5 秒 |
一般 |
简单 |
大多数商家(推荐) |
| SRT |
1-2 秒 |
强 |
需要额外参数 |
网络不稳定或需要低延迟 |
实测:SRT 连接不稳定,优先用 RTMP
SRT 推流在本机实测出现多次 Failed to open the url、Connection was broken、Error writing packet,且 SRT 配置较复杂。RTMP 连接稳定、配置简单,普通商家一律推荐 RTMP。SRT 仅建议在网络极差(高丢包)时尝试。
SRT 推流密钥格式(如必须用 SRT):
推流地址必须加 streamid 参数,且模式必须是 m=publish(推流),写错成 m=request 会导致连接被拒:
srt://你的域名:10080?streamid=#!::r=live/你的推流密钥,m=publish
若提示 Failed to open the url,先检查 streamid 是否完整、m=publish 是否写对、10080 端口是否放行。
手机端推流
推荐使用 Prism Live Studio(iOS/Android 免费,支持美颜滤镜):
- App Store / Google Play 搜索 "Prism Live Studio" 下载
- 打开 App → 设置 → 推流 → 选择 "SRT 推流"(推荐)或"自定义 RTMP"
- 推流地址填
rtmp://你的域名:1935/live/,流密钥填你的推流密钥
- 设置分辨率:竖屏直播选 720x1280,横屏直播选 1280x720
- 设置码率:3000 kbps,CBR 模式
- 设置关键帧间隔:2 秒
- 设置音频:AAC,128 kbps,采样率与设备一致(默认 48 kHz)
- 点击开始直播
其他免费推流App:
• Larix Broadcaster(iOS/Android,免费版有水印,专业功能强)
• RTMP Streamer(Android,免费无水印,轻量)
• Streamlabs(iOS/Android,免费基础版)
手机推流注意:
• 手机网络不稳定时码率会自动降低,这是正常的
• 竖屏直播时,分辨率设为 720x1280(宽720,高1280)
• 手机发热会导致降频,长时间直播建议用散热背夹
电脑和手机同时推流的问题 重要
不要用同一个推流密钥在两台设备同时推流!
每个直播间的推流密钥是唯一的。如果电脑端和手机端同时用同一个密钥推流,会导致:
| 问题 | 说明 |
| 画面闪烁 |
SRS 会在两个推流源之间切换,观众看到画面来回闪烁 |
| 直播中断 |
新推流会踢掉旧推流,旧端断开后又踢掉新端,循环断开 |
| 音画错乱 |
两个推流的音频和视频混合,观众听到杂音 |
| 直播间状态异常 |
系统无法判断直播是否在线,状态反复切换 |
正确做法
- 切换设备前,先在当前设备停止推流
- 确认直播状态已变为"未直播"(等 5-10 秒)
- 在新设备上开始推流
系统保护机制:DurianLive 已加入推流冲突检测。如果检测到同一密钥已有推流连接,新推流将被拒绝,防止画面闪烁。请先停止旧推流再开始新推流。
常见问题
Q: 我设置了 1080p,画面看起来更清晰,为什么推荐 720p?
1080p 在你自己的电脑上看起来清晰,但观众端浏览器需要解码 1080p FLV 流,CPU 占用是 720p 的 2.25 倍。很多观众的设备(特别是手机和老旧电脑)无法流畅解码 1080p,导致卡顿。720p 在所有设备上都能流畅播放,清晰度对于直播来说完全够用。
Q: 关键帧间隔是什么?为什么必须 2 秒?
关键帧(Keyframe / I-Frame)是视频流的完整画面帧,其他帧只记录变化。播放器需要关键帧来开始播放和同步音视频。DurianLive 的 HLS 分片是 2 秒一个,如果关键帧间隔不是 2 秒,HLS 分片无法正确对齐,会导致音画不同步和周期性卡顿。
Q: 推流后观众端要等几秒才能看到画面?
正常情况下 3-5 秒。RTMP 推流延迟约 3-5 秒,SRT 推流延迟约 1-2 秒。如果超过 10 秒还没画面,检查推流密钥是否正确、网络是否通畅。
Q: 直播时画面卡顿,怎么排查?
1. 检查 OBS 设置是否按本指南配置(特别是分辨率 720p、关键帧 2 秒、音频采样率 48kHz)
2. 测试上传带宽是否足够(speedtest.net)
3. 关闭其他占用网络的程序(下载、视频通话等)
4. 如果用 WiFi,改用有线网络
5. 降低码率到 2000-2500 kbps
Q: 画面"流畅几秒 → 卡死几秒 → 恢复 → 再卡死"无限循环,怎么解决?
这是音频采样率与设备不匹配导致的典型症状。排查步骤:
1. 打开 OBS 日志(帮助 → 日志文件 → 查看当前日志),搜索 lagging 和 Max audio buffering
2. 如果出现 audio is lagging (over by ... ms),说明音频设备采集跟不上
3. 把 OBS → 设置 → 音频 → 采样率改为 48 kHz(与设备一致,Windows 设备默认 48kHz)
4. 重启 OBS 后重新推流
5. 如果还不行,改用 RTMP 推流(更稳定),并检查网络
Q: OBS 提示 "Failed to open the url"(SRT 推流连不上),怎么办?
1. 检查 SRT streamid 格式是否完整:srt://域名:10080?streamid=#!::r=live/推流密钥,m=publish,注意结尾是 m=publish 不是 m=request
2. 确认 SRS 的 10080 端口已开放(防火墙/云安全组)
3. SRT 连接不稳定时,直接改用 RTMP 推流(rtmp://域名:1935/live/ + 推流密钥),RTMP 连接更稳定
Q: 竖屏直播怎么设置?
输出分辨率改为 720x1280(宽720,高1280)。其他参数不变。DurianLive 前端会自动检测竖屏视频并铺满屏幕,不会变形。
Q: 可以用手机直播吗?
可以。推荐使用 Prism Live Studio(iOS/Android 免费,支持美颜)。设置和电脑端一样:720p、3000kbps、关键帧2秒、AAC 128kbps。竖屏直播分辨率选 720x1280。详见上方"手机端推流"章节。
Q: 推流密钥在哪里获取?
登录 DurianLive 控制台(/dashboard),在直播间设置中可以看到你的推流密钥。每个直播间有唯一的推流密钥,不要泄露给他人。
如有其他问题,请联系 DurianLive 技术支持或在控制台提交工单。