菜单

视频源

相关源文件

本文档概述了 OBS Studio 中可用的不同视频源插件。视频源是捕获各种输入视觉内容的基本构建块,然后可以将这些内容组合成场景。有关音频源的信息,请参阅 音频源

概述

OBS Studio 中的视频源作为插件实现,用于从游戏、窗口、显示器、媒体文件和捕获设备等不同来源捕获视频。每种视频源类型都专门针对捕获特定类型的内容,并考虑了性能、质量和兼容性等优化因素。

来源

视频源类型

游戏捕获

游戏捕获专门用于以最高性能和最小影响捕获游戏和 3D 应用程序。它通过将钩子注入到游戏进程中来直接从游戏的图形 API 截取帧。

主要功能

  • 支持多种捕获模式:特定窗口、前景全屏或热键激活
  • 高效直接捕获 Direct3D、OpenGL 和 Vulkan 内容
  • 光标捕获选项
  • 兼容模式,用于存在问题的游戏
  • 反作弊兼容模式,用于具有严格反作弊系统的游戏

来源

窗口捕获

窗口捕获允许捕获桌面上的特定窗口。它提供了不同的捕获方法选项,以平衡兼容性和性能。

主要功能

  • 可以通过标题、类名或可执行文件定位窗口
  • 多种捕获方法:BitBlt (GDI) 以获得兼容性,Windows 图形捕获以支持现代 Windows 10/11
  • 可以仅捕获客户区(不带窗口边框)
  • 处理 DPI 感知以实现正确的缩放
  • 光标捕获选项
  • 窗口匹配优先级设置(标题、类名、可执行文件)

来源

显示捕获

显示捕获(监视器捕获)捕获监视器或显示器的全部内容。它支持不同的捕获方法,以与各种 Windows 版本和硬件配置兼容。

主要功能

  • 捕获整个显示器或屏幕
  • 多种捕获方法:DXGI Desktop Duplication(首选)、Windows 图形捕获或 GDI BitBlt
  • 支持多显示器设置
  • 光标捕获选项
  • 兼容模式,用于存在图形驱动程序问题的系统
  • 使用 Windows 图形捕获时支持 HDR

来源

视频捕获设备

视频捕获设备源从 DirectShow 设备(如网络摄像头、采集卡和其他视频输入设备)捕获。它提供了丰富的设备和格式选择选项。

主要功能

  • 枚举并允许从所有可用的 DirectShow 设备中选择
  • 自定义分辨率和帧率设置或设备默认值
  • 支持硬件解码的格式选择
  • 从设备捕获音频,或从单独的音频设备捕获
  • 自动缓冲检测或手动缓冲控制
  • 支持通过 DirectShow 属性页进行设备特定控件
  • 颜色空间选择

来源

媒体源

媒体源使用 FFmpeg 播放媒体文件,如视频、图像或音频文件。它还可以播放网络流。

主要功能

  • 通过 FFmpeg 支持各种视频和音频格式
  • 网络流功能
  • 循环、速度调整和搜索选项
  • 硬件加速解码
  • 当源变为活动状态时可重新启动
  • 色彩范围调整
  • 逐帧精确搜索支持

来源

实现架构

源插件实现

OBS 中的视频源通过插件 API 实现。每个视频源插件都必须实现一组 OBS 用于与源交互的回调函数。

关键组件

  • 每个源插件向 OBS 注册一个或多个源类型
  • 回调函数处理生命周期事件(创建、销毁、显示、隐藏)
  • update 回调函数处理设置更改
  • 视频渲染回调将帧输出到 OBS
  • 宽度和高度回调报告源尺寸
  • properties 回调函数创建用于配置的用户界面

来源

视频捕获管道

视频捕获管道涉及从捕获原始帧到在 OBS 中渲染它们的几个步骤。

关键方面:

  • 根据源类型的不同捕获方法
  • 处理可能包括格式转换、缩放、裁剪
  • 输出可以通过直接纹理渲染或帧结构填充
  • 每种源类型都有针对其特定捕获方法的优化路径

来源

格式支持和转换

每种视频源类型支持不同的输入格式,在使用它们之前可能需要进行转换。

源类型支持的输入格式转换方法
游戏捕获RGBA、BGRA、NV12、RGB10A2、RGBA16F、RGBA32F着色器中的直接转换或转换
窗口捕获 (BitBlt)BGRA无(原生)
窗口捕获 (WGC)BGRA、RGBA16F无(原生)
显示捕获 (DXGI)BGRA无(原生)
显示捕获 (GDI)BGRA无(原生)
视频捕获设备NV12、YUY2、YVYU、UYVY、I420、YV12、MJPEG、H.264FFmpeg 解码压缩格式
媒体源各种(FFmpeg 支持)FFmpeg 解码和转换

来源

性能考量

不同的视频源类型具有不同的性能特征

  1. 游戏捕获:

    • 由于直接 API 挂钩,捕获游戏的开销最低
    • 正确配置时对游戏的影响性能很小
    • 可能时硬件加速
  2. 窗口捕获:

    • Windows 图形捕获在 Windows 10/11 上提供更好的性能
    • BitBlt 兼容性更好,但 CPU 使用率更高
    • 捕获透明窗口可能会影响性能
  3. 显示捕获:

    • DXGI Desktop Duplication 提供硬件加速捕获
    • GDI 回退具有更高的 CPU 使用率
    • 可能比定向捕获方法更消耗资源
  4. 视频捕获设备:

    • 硬件解码可显著提高压缩格式的性能
    • 缓冲设置会影响延迟与流畅度
    • 设备功能会影响可用格式和性能
  5. 媒体源:

    • 硬件解码可提供显著的性能优势
    • 本地文件的性能优于网络流
    • 复杂的滤镜或高分辨率内容可能需要更多资源

来源

常见问题排查

每种视频源类型都可能遇到特定问题

  1. 游戏捕获:

    • 黑屏:尝试不同的捕获模式或兼容性选项
    • 带有反作弊的游戏:使用兼容模式或窗口捕获
    • 性能问题:确保 GPU 驱动程序正确,并禁用不必要的覆盖
    • HDR 问题:适当配置 HDR 颜色空间设置
  2. 窗口捕获:

    • 黑屏/空白窗口:尝试不同的捕获方法(BitBlt 与 WGC)
    • 权限问题:对某些窗口运行 OBS 作为管理员
    • DPI 缩放问题:检查“应用程序”DPI 感知设置
  3. 显示捕获:

    • 黑屏:尝试不同的捕获方法或以管理员身份运行
    • 性能问题:如果可能,降低分辨率或帧率
    • 多显示器问题:验证正确的显示器选择
  4. 视频捕获设备:

    • 设备未出现:检查设备是否被其他应用程序使用
    • 格式问题:尝试不同的格式或使用自动检测
    • 缓冲问题:根据设备行为调整缓冲设置
  5. 媒体源:

    • 播放问题:确保 FFmpeg 支持媒体格式
    • 性能问题:如果可用,启用硬件解码
    • 网络流问题:针对不稳定的连接增加缓冲

来源