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,该接口可以通过转到 OBS 中的工具 > WebSocket 服务器设置并选择启用 WebSocket 服务器来启用。
然后可以使用 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 插件允许在画布中使用网页,通常用于基于网络的叠加层。网页可以进行交互,并且像任何其他源类型一样工作。
默认的 obs-studio 软件包 不提供此插件。可以通过其他客户端或插件软件包添加它
- obs-studio-gitAUR 在编译时包含浏览器插件。
- obs-studio-tytan652AUR 是一个自定义客户端,除了其他通用改进外,还提供浏览器插件以及浏览器停靠栏。
通过 Vulkan/OpenGL 捕获
obs-vkcapture 插件增加了捕获 Vulkan 或 OpenGL 程序的功能,它直接挂钩到这些 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)。