Open Broadcaster Software
Open Broadcaster Software (OBS) 是一款开源的跨平台视频录制和直播应用程序。它提供了一个易于上手且可扩展的工作流程,具有可自定义的场景、音量混合器、转场、滤镜等。
安装
安装 以下软件包之一
- obs-studio - 最新的 OBS 发布版本。
- obs-studio-gitAUR - 最新的 master 分支提交。
- obs-studio-tytan652AUR
- obs-studio-browserAUR
配置
为了方便配置,工具 > 自动配置向导 可以快速设置录制和直播的基本设置。向导会根据您的硬件(以及如果设置了直播,则根据您的网络连接)自动选择比特率、分辨率和编码器。
硬件视频加速
硬件加速编码和解码对于性能、CPU/GPU 使用率和质量是最佳选择。可以在 设置 > 输出 > 直播 > 编码器 中更改编码器(可能需要先将 设置 > 输出 > 输出模式 设置为 高级)。如果未检测到硬件编码器,请参阅 硬件视频加速。
录制输出
默认情况下,OBS 会将录制内容输出到用户主路径,视频文件名中带有空格,并使用与直播相同的编码器。输出路径、文件大小、文件格式、文件名样式等可以在 设置 > 输出 > 录制 中更改。
热键
默认情况下,OBS 不分配任何热键。所有在选择时以红色突出显示的热键对可以使用相同的快捷键绑定来切换该对的功能。
虚拟摄像头输出
从 26.1 版本开始,OBS 支持 Linux 上的虚拟摄像头输出。要使用它,请安装 v4l2loopback,然后 启动虚拟摄像头 按钮将出现在 OBS 中。如果 v4l2loopback
内核模块 尚未加载,OBS 将自动尝试加载它,并请求管理员权限来执行此操作(使用 pkexec(1))。
Wayland
由于 OBS 是一个 Qt 应用程序,请参阅 Wayland#Qt 以使其在 Wayland 下工作。自 28 版本以来,OBS 已 从 Qt 5 升级到 Qt 6,因此较新版本需要安装 qt6-wayland。请参阅 PipeWire#WebRTC 屏幕共享 以启用 Wayland 屏幕捕获。
KDE 中的全局快捷键无法工作
OBS 中设置的全局快捷键仅在 OBS 处于焦点时才有效。作为一种解决方法,您可以通过其 WebSocket 接口控制 OBS,可以通过转到 工具 > WebSocket 服务器设置 并选择 启用 WebSocket 服务器 在 OBS 中启用该接口。
然后可以使用 obsws-python 或 obs-websocket-py(版本 >=1.0)控制 WebSocket。它们中的任何一个都可以使用 pip 安装。然后在 系统设置 > 快捷键 中,您可以为 obsws-python
添加以下命令,以设置自定义快捷键来切换录制
python -c "import obsws_python;obsws_python.ReqClient(host='localhost',port=4455,password='yourwebsocketpassword').toggle_record()"
或者,如果您使用 obs-websocket-py
,则可以使用以下命令
python -c "from obswebsocket import obsws,requests;c=obsws('localhost',4455,'yourwebsocketpassword');c.connect();c.call(requests.ToggleRecord());c.disconnect()"
WebSocket 密码和端口可以在 WebSocket 服务器设置 > 显示连接信息 中找到。
如果您想避免复杂的单行命令,请使用 recording-toggle.py 脚本。
如果您想使用标准 Python 并且不需要额外的 obs 特定的 Python 依赖项,请使用 obs-control.py 脚本。
技巧和窍门
浏览器源
obs-browser 插件使您能够在画布中使用网页,通常用于基于 Web 的叠加层。可以与网页进行交互,并且其工作方式类似于任何其他源类型。
默认的 obs-studio 软件包 不提供此插件。可以通过其他客户端或插件软件包添加它
- obs-studio-gitAUR 编译时包含浏览器插件。
- obs-studio-tytan652AUR 是一个自定义客户端,除了其他常规改进外,还提供浏览器插件以及浏览器停靠。
通过 Vulkan/OpenGL 捕获
obs-vkcapture 插件增加了捕获 Vulkan 或 OpenGL 程序的功能,它直接hook到这些 API,而不是使用通用的 Xorg 或 Wayland 窗口捕获 API。要使用它,安装 obs-vkcaptureAUR,以及 lib32-obs-vkcaptureAUR (如果捕获 32 位应用程序)。按照 GitHub 存储库中的说明使用该插件设置游戏捕获。
使用 GStreamer 编码
obs-gstreamer 是一个项目,它提供
- 一个使用 GStreamer 进行编码的编码器插件。
- 用于使用 GStreamer 管道 作为源、视频滤镜或音频滤镜的插件。这是一种高级功能,旨在供熟悉 GStreamer 用法的用户使用。
要使用 obs-gstreamer 进行编码,安装 obs-gstreamerAUR(或 obs-vaapiAUR 以获取独立插件),并将 OBS 的编码器更改为 VAAPI H.26x/VPx/AV1 on <设备名称>。如果 OBS 给出关于编码器的错误,您可能需要 安装 gstreamer-vaapi 软件包。
手动安装插件
您可以手动将插件安装到 ~/.config/obs-studio/plugins/
。文件夹结构如下
~/.config/obs-studio/plugins/plugin_name/bin/64-bit/plugin_name.so ~/.config/obs-studio/plugins/plugin_name/data/locale/en-US.ini
录制矩形区域
如果您使用 KDE,则可以使用辅助脚本 obs-rectangle-area-selector 选择矩形区域进行录制。
故障排除
QuickSync 返回 “创建 MFX 会话时出错”
如果未安装正确的 Intel QuickSync 驱动程序,则可能会发生此错误。
[AVHWDeviceContext @ 0x6111a37c1040] Error creating a MFX session: -9. Device creation failed: -1313558101.
要使用 QuickSync,请为 Iron Lake (Gen5) 到 Ice Lake (Gen10) GPU 安装 intel-media-sdk,或为 Tiger Lake (Gen11) 及更新的 GPU 安装 vpl-gpu-rt。
有关更多信息,请参阅 FFmpeg#Intel QuickSync (QSV)。