略懂OBS——强大的推流录制工具

OBS (Open Broadcaster Software) 是一款开源、免费、跨平台的直播推流和视频录制工具,它功能强大、可调空间大、上限很高,但是因为它主要为直播而设计,录制操作的便利性较差,上手有一定难度。和一众录屏工具(包括N/A卡驱动自带录屏)和它的套皮软件相比,OBS 属于那种“愿意花一些时间研究能带来更高画质和效率”的工具。

本文将会基于最新的 28.0 版本介绍直播推流和录制相关的设置,并以CSGO素材录制为例介绍游戏场景下的设置策略和一些 Trick,注意 OBS 实际分为 Studio 和 Classic 两个版本,Classic 版本有更好的兼容性,对较老的系统和设备有些用处,一般都用 Studio 版本。

[图片上传失败...(image-10a4f1-1662489571206)]

安装

官网:https://obsproject.com
项目:https://github.com/obsproject/obs-studio
论坛:https://obsproject.com/forum
资源:https://obsproject.com/forum/resources

资源页包含各种插件、脚本、主题和工具。

OBS Studio 已经登录 Steam 商店,同样免费。如果担心下载和更新的速度,可以直接从 Steam 下载,相对更加方便。

初识OBS

[图片上传失败...(image-283a0e-1662489571206)]

启动 OBS,忽略首次引导,主界面如图所示。可以看到界面分为以下几个部分:

  • 顶部菜单栏
  • 预览窗口
  • 快捷工具栏
  • 来源
  • 混音器
  • 场景
  • 转场特效
  • 控件

来源面板

看到 来源 面板,我们需要添加合适的源得到想要的画面,这里的源类似 PhotoShop图层 的概念,上层会覆盖下层,顺序可以随意调整,来源不可用时为透明,不会影响下一层。

可以添加的来源有很多种,首先添加一个 显示器采集 源,一切默认,这样我们就能预览看到画面了。

游戏源窗口采集 可以专门捕获全屏游戏或某个游戏/窗口,捕获游戏时的性能会更好,可以把它们放在显示器源的上层,兼顾性能和便利,也可以关闭显示器源,不暴露桌面情况只展示特定游戏或窗口。

应用程序音频捕获 是当前正在测试的功能,可以获取特定程序的声音,特别适合分离游戏/语音音源,方便后期处理,后面会详细介绍。

[图片上传失败...(image-bf1ae9-1662489571206)]

混音器面板

这里我们可以调整各个声音来源的音量和滤镜,改变它们的混合比例。打开某个音源的滤镜页,可以添加 降噪、阈值 等滤镜,包括电脑中已安装的VST效果,图中简单加了一个 噪音抑制,效果尚可。

点“齿轮”按钮或右键打开高级音频属性,这里可以进一步调整音量、左右平衡、偏移和监听,和较为重要的轨道。轨道中某个数字是否勾选代表它是否在该轨道中出现,一般会在轨道1中保留主要声音/直播观众听到的声音,其他轨道分别设置麦克风、开黑语音等音源,方便后期处理。

[图片上传失败...(image-3b1ae5-1662489571206)]

场景面板

设置和调整各个场景(Scene),直播往往需要多个不同场景,如正式开播前的等候场景、游戏A、B、C的场景、聊天场景等等。提前设置好各个场景可以避免来源面板臃肿和不断开关来源的麻烦。搭配相应的工具(如StreamDeck)可以实现快速切换场景,给直播带来遍历。

场景之上还有一个场景集合的概念,在顶部菜单栏可以看到,可以更方便的分组、导入导出场景设置。

转场特效面板

调整场景切换时的转场特效,默认只有渐变和裁切,即交叉溶解和硬切,通过安装转场插件可以添加更多效果。

预览窗口

除了实时预览效果,在预览窗口还可以全屏投影、截屏和调整源的尺寸及位置。

配置文件

类似刚才提到的场景集合,每一个配置文件对应一组接下来要介绍的设置,整个设置面板的内容都包括在内(录制、推流、快捷键等),注意它和场景互不干扰,要分别设置。

设置

从控件面板点击按钮打开设置面板,这里按照录制设置的逻辑顺序介绍,以下每一小节对应左侧的标签栏名称。

视频

在这里可以调整画布和输出的分辨率、缩小方法和录制帧率FPS。

两个分辨率一般保持一致,即你想要的录制/推流分辨率,并且此时缩小方法不会生效。基础分辨率大于输出分辨率相当于超采,理论上画面细节会更好,性能消耗也会更高。不过这里调整缩放和来源设置的缩放有些重复,除非想要1080P推流同时4K录像,一般不要动,一致即可。

常用 FPS 值 不超过60,想要录制更高帧率可以改成 整数 FPS 值,最高能到120,再往上可以设置分数 FPS 值,如 180FPS -> 180/1,不过此时录制的性能一般有瓶颈。

高级

高级页一般要注意的是 视频、录像、串流延迟这三个部分。

色彩格式默认的NV12适合推流,设置成其他格式则会有格式转换的性能消耗,但如果机器的性能尚可,建议设置成 I420。如果追求更高的画质,I420下色彩信息损失较多,可以考虑修改为 I444,但它的兼容性较差,请务必确认你所使用的软件能够正确识别和播放

想要进一步了解可以搜索 色度抽样

色彩范围设置为有限会丢弃掉一些超黑超白数据。直播场景建议保持 受限 以规避一些问题。在录制场景下可以设置为 完全注意此时部分播放器可能会出现异常

录像文件名格式中包含年月日和时间,可以根据需要修改。

自动封装至MP4格式再录制文件格式为MKV时会自动在录制完成后转换格式,后文中展开说明。

回放缓存文件名前缀/后缀 设置回放缓存(即时重放)功能保存的视频文件名,和录制得到的文件作区分,建议前缀或者后缀改成即时重放

串流延迟顾名思义,主要用于游戏直播防窥屏等需求。

[图片上传失败...(image-25c547-1662489571206)]

输出

输出页包含推流、录像、音频和回放缓存(即时重放)的设置,也是OBS设置的难点。

输出模式建议设置成 高级 以获得最大的调整空间,简单模式 下的录像设置不是很够。如果你想要更简单一些,可以先看下去,如果你需要的选项在 简单模式 下就能调整好也可以不动。

编码器

编码器是OBS设置的重点。其中 x264 是 CPU 软件编码,比较吃CPU的性能和多核性能,而显卡编码一般对性能影响较小,但是画质较差,NVIDIA显卡有 NVENC,AMD显卡有 AMF,Intel显卡有 QuickSync,Mac下也有对应的编码器。

显卡编码非常适合游戏场景,我们可以把推流和录像都设置成显卡编码或者一个CPU编码、一个显卡编码平衡负载。

[图片上传失败...(image-626f5a-1662489571206)]

x264 编码器

一般关注这三个设置

  • 码率控制:固定码率CBR/可变码率VBR/CRF
    • VBR 更节省码率,但画面变换时码率变换可能滞后导致码率不够
    • CRF 模式适合录像,数值越低画质越高
  • 比特率:CBR/VBR下可用
    • 直播建议在 4000Kbps 以上
    • 8000Kbps 附近比较适合 1080P 直播
    • 码率上限取决于网络的上行带宽,建议测试网速确保带宽足够
  • CPU使用预设:对CPU占用影响较大,掉帧时提高(使用更快)预设
NVIDIA NVENC H.264 编码器

可以尝试使用 NVIDIA NVENC HEVC,但要考虑到直播平台是否支持,和部分设备无法硬解时出现的卡顿情况。

  • 速率控制:同上码率控制
  • 最大比特率:可以在比特率的基础上加 2000~5000 Kbps
  • 预设:直播时尽可能在带有性能的三个档位中选择,推荐 性能
  • 录像:CQP 模式,数值 12~23;预设改为质量/最高质量
Apple ProRes 编码器

安装 Streamfx 插件后可用,录像时可以考虑尝试使用,适用于对画质要求高且配置、存储足够的用户,建议配置设置 422标准422高品质

更多的编码知识和OBS编码器设置作业参见大佬 iAvoe的文档

录像

录像格式:即录像文件的封装格式,OBS 里的编码格式基本都支持 mp4/mov/mkv 封装,区别是 mkv 封装遇到断电等意外情况时可以保留之前录好的部分菜单栏-文件-录像转封装 处转换为 mp4 格式后即可正常播放,但是部分播放器和软件(如旧版本Pr/Ae)支持较差,可能会无法播放。有需要可以前往 高级页 设置自动转换封装。

音轨:如要分离音频方便后期处理,这里务必勾选上所有要用到的音轨。

编码器:如设置成(使用推流编码器),则会把直播的画面直接保存到本地,但对录像来说画质可能不够好,只求记录时可以这样设置,追求画面则设置成其他编码器。

重新缩放输出:期望的推流和录像分辨率不一致时启用。

自动分割文件:录制时间较长时可以固定文件大小/时长分割保存到硬盘中,降低意外情况下的风险,也方便筛选素材。

[图片上传失败...(image-717e76-1662489571206)]

音频

这里可以设置更高的比特率/码率/微滤,提高声音质量,也可以给不同的轨道起名字方便后期区分。

回放缓存

相当于N卡的即时重放,非常适合保存游戏的高光时刻。

最长回放时间:建议设置 90s120s

强迫症玩家可以 +1s 不然实际时长会小 1s

最大内存: 无法估计时尽可能给高,如 4096MB8192MB

推流

这里设置推流的服务器和秘钥,OBS默认并不支持国内的直播平台,把服务修改成 自定义...,从直播平台的开播页找到服务器地址和秘钥并复制到这里,注意不要泄露秘钥。

快捷键

这里没有什么难点,注意开始推流/停止推流设置同一个快捷键时,按键为开关式,一开一关。一般建议设置的快捷键:

  • 开始推流
  • 停止推流
  • 开始录制
  • 停止录制
  • 开始回放缓存
  • 停止回放缓存
  • 保存回放(输出页启用回放缓存后才可见)

CSGO素材录制

画面捕获

  • 想得到拉伸画面,对源右键-变换-拉伸到全屏 或者选中源 Ctrl+S
  • 取消相应游戏源/窗口捕获/显示器捕获中的 显示鼠标指针
  • CSGO受信任模式的影响,官方匹配/直接启动游戏时无法捕获游戏流,只能捕获显示器,性能较差;平台游戏不受影响。
  • 针对本地回放录像 demo 录屏有两种解决方法:
    1. 启动项添加 -allow_third_party_software
    2. 使用 HLAE 启动 CSGO

[图片上传失败...(image-3a3a54-1662489571206)]

声音捕获

  1. 来源面板添加应用程序音频捕获,先启动一次游戏并设置好捕获的窗口 csgo.exe
  2. 高级音频属性中调整轨道分配,让游戏的音频单独一轨,设置-音轨-录像启用对应轨道。

录像设置

CPU/显卡编码根据个人偏好和电脑配置情况选择,以下给出推荐设置:

x264 编码器

  • 码率控制模式:强烈建议选择 CRF
  • CRF 的数值越小,画质越高,文件越大,推荐范围 6~16
  • CRF 数值减 6,码率翻倍
  • CPU 使用预设 veryfast ~ ultrafast 选一个当前设置下不掉帧的档位,建议 ultrafast

NVIDIA NVENC H.264/HEVC 编码器

  • 编码器:HEVC 比 H.264 效率更高,尤其是高分辨率
  • 速率控制:由于没有 CRF 模式,这里选择 CQP 模式
  • CQ 级别:
    • H.264:推荐 12,不超过 23
    • HEVC:推荐 16,不超过 26
  • 预设:选 质量最高质量

Apple ProRes 编码器

配置选择 422 标准(APCN)

游戏设置

  • 窗口模式
  • 取消绑定 Ctrl,追踪投掷物从 Alt 改为 R,避免切屏和截图时出现异常
  • 游戏中播放和暂停快捷键可与 OBS 开始/结束录制保持一致
  • 控制台指令 engine_no_focus_sleep 0 确保窗口失焦后不掉帧
  • 慢放录像,如 1/4:demo_timescale 0.25Shift+F2 在 demoui 中手动操作
  • 限制游戏渲染帧率,如 120fps:fps_max 120

帧率调整

录制高帧率素材的时候我们一般会慢放录像+限制FPS节省资源给OBS留出更多的性能空间,在编码设置确定之后调整录制帧率可以明显提高录制的速度,可参照上文设置120FPS甚至更高的帧率。

菜单栏-停靠窗口-统计:启用统计面板,可以看到由于渲染延迟错过的帧由于编码延迟跳过的帧FPS。颜色变黄/变红或丢帧较多时(偶尔)说明当前设置无法完美录像,需要调整编码器设置或降低录制FPS。

[图片上传失败...(image-df790-1662489571206)]

你可能感兴趣的:(略懂OBS——强大的推流录制工具)