Purp1eの知识小站 Purp1eの知识小站
分类
标签
归档
关于
GitHub (opens new window)

Purp1e

取法于上,仅得为中
分类
标签
归档
关于
GitHub (opens new window)
  • 略懂OBS——强大的推流录制工具

    • 安装
      • 初识OBS
        • 来源面板
        • 混音器面板
        • 场景面板
        • 转场特效面板
        • 预览窗口
        • 配置文件
      • 设置
        • 视频
        • 高级
        • 输出
        • 编码器
        • x264 编码器
        • NVIDIA NVENC H.264 编码器
        • Apple ProRes 编码器
        • 录像
        • 音频
        • 回放缓存
        • 推流
        • 快捷键
      • CSGO素材录制
        • 画面捕获
        • 声音捕获
        • 录像设置
        • x264 编码器
        • NVIDIA NVENC H.264/HEVC 编码器
        • Apple ProRes 编码器
        • 游戏设置
        • 帧率调整
    Purp1e
    2022-09-07
    博客
    目录
    安装
    初识OBS
    来源面板
    混音器面板
    场景面板
    转场特效面板
    预览窗口
    配置文件
    设置
    视频
    高级
    输出
    编码器
    x264 编码器
    NVIDIA NVENC H.264 编码器
    Apple ProRes 编码器
    录像
    音频
    回放缓存
    推流
    快捷键
    CSGO素材录制
    画面捕获
    声音捕获
    录像设置
    x264 编码器
    NVIDIA NVENC H.264/HEVC 编码器
    Apple ProRes 编码器
    游戏设置
    帧率调整

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

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

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

    OBS官网

    # 安装

    官网:https://obsproject.com (opens new window)

    项目:https://github.com/obsproject/obs-studio (opens new window)

    论坛:https://obsproject.com/forum (opens new window)

    资源:https://obsproject.com/forum/resources (opens new window)

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

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

    # 初识OBS

    OBS主界面

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

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

    # 来源面板

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

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

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

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

    OBS来源

    # 混音器面板

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

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

    高级音频属性

    # 场景面板

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

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

    # 转场特效面板

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

    # 预览窗口

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

    # 配置文件

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

    # 设置

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

    # 视频

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

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

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

    # 高级

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

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

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

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

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

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

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

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

    OBS高级页

    # 输出

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

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

    # 编码器

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

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

    OBS串流界面

    # 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 (opens new window) 插件后可用,录像时可以考虑尝试使用,适用于对画质要求高且配置、存储足够的用户,建议配置设置 422标准 或 422高品质

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

    # 录像

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

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

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

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

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

    OBS录像设置

    # 音频

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

    # 回放缓存

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

    最长回放时间:建议设置 90s 或 120s

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

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

    # 推流

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

    # 快捷键

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

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

    # CSGO素材录制

    # 画面捕获

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

    OBS源属性

    # 声音捕获

    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.25 或 Shift+F2 在 demoui 中手动操作
    • 限制游戏渲染帧率,如 120fps:fps_max 120

    # 帧率调整

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

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

    OBS统计面板

    #OBS
    上次更新: 2023/12/22, 07:41:18
    最近更新
    01
    TeamSpeak服务器搭建——基于Docker-Compose
    10-03
    02
    略懂SSH——设备间安全通信
    09-07
    03
    transform scale safari浏览器模糊
    04-19
    更多文章>
    Theme by Vdoing | Copyright © 2021-2025 Purp1e
    皖公网安备34012302001231 | 皖ICP备20002252号-3
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式