OBS 推流设置指南

正确配置 OBS 参数,确保直播画面流畅、音画同步、无卡顿

目录

为什么要正确设置 OBS?

OBS 的参数直接影响观众的观看体验。如果设置不当,会出现以下问题:

问题原因观众感受
画面卡顿 分辨率过高(1080p)导致编码/解码 CPU 负载过重 每 3-10 秒卡一次,画面不连贯
音画不同步 关键帧间隔不是 2 秒,音频时间戳漂移 声音和画面错位,主播说话对不上口型
画面模糊 码率过低,运动场景出现马赛克 画质差,细节丢失
延迟过大 缓冲累积,观众看到的画面比主播延迟几十秒 聊天不同步,互动体验差
推流断开 码率超过网络上传带宽 直播频繁中断,观众看到黑屏
画面反复卡死循环 音频采样率与设备不匹配,音频缓冲堆积、音频严重滞后 画面流畅几秒 → 卡住几秒 → 恢复 → 再卡住,无限循环
正确设置后:画面流畅无卡顿、音画同步、延迟 1-3 秒、所有观众看到的画面基本一致。

下载和安装 OBS

电脑端

  1. 访问 OBS 官网:https://obsproject.com
  2. 下载对应系统的版本(Windows / macOS / Linux)
  3. 安装后打开 OBS Studio(不要用 OBS Streamlabs,它更重)

手机端

  1. iOS / Android:搜索 "Prism Live Studio"(免费,支持美颜滤镜)
  2. 打开 App → 设置 → 推流 → 选择 "SRT 推流"(推荐)或"自定义 RTMP"
  3. 输入推流地址(在 DurianLive 控制台获取)
  4. 设置分辨率:竖屏直播选 720x1280,横屏直播选 1280x720
  5. 点击开始直播
其他免费手机推流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 kbps128 kbps3128 kbps4 Mbps
4000 kbps128 kbps4128 kbps5 Mbps
6000 kbps128 kbps6128 kbps8 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 免费,支持美颜滤镜):

  1. App Store / Google Play 搜索 "Prism Live Studio" 下载
  2. 打开 App → 设置 → 推流 → 选择 "SRT 推流"(推荐)或"自定义 RTMP"
  3. 推流地址填 rtmp://你的域名:1935/live/,流密钥填你的推流密钥
  4. 设置分辨率:竖屏直播选 720x1280,横屏直播选 1280x720
  5. 设置码率:3000 kbps,CBR 模式
  6. 设置关键帧间隔:2 秒
  7. 设置音频:AAC,128 kbps,采样率与设备一致(默认 48 kHz)
  8. 点击开始直播
其他免费推流App:
• Larix Broadcaster(iOS/Android,免费版有水印,专业功能强)
• RTMP Streamer(Android,免费无水印,轻量)
• Streamlabs(iOS/Android,免费基础版)
手机推流注意:
• 手机网络不稳定时码率会自动降低,这是正常的
• 竖屏直播时,分辨率设为 720x1280(宽720,高1280)
• 手机发热会导致降频,长时间直播建议用散热背夹

电脑和手机同时推流的问题 重要

不要用同一个推流密钥在两台设备同时推流!

每个直播间的推流密钥是唯一的。如果电脑端和手机端同时用同一个密钥推流,会导致:

问题说明
画面闪烁 SRS 会在两个推流源之间切换,观众看到画面来回闪烁
直播中断 新推流会踢掉旧推流,旧端断开后又踢掉新端,循环断开
音画错乱 两个推流的音频和视频混合,观众听到杂音
直播间状态异常 系统无法判断直播是否在线,状态反复切换

正确做法

  1. 切换设备前,先在当前设备停止推流
  2. 确认直播状态已变为"未直播"(等 5-10 秒)
  3. 在新设备上开始推流
系统保护机制: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 技术支持或在控制台提交工单。