OBS Studio
Macro Deck 自带切换场景,控制推流、录制和音频,并对 OBS Studio 中发生的事情做出响应。
“连接 OBS Studio”对话框,包含配置名称、主机、端口和密码
- 切换场景、配置文件和场景集合
- 开始和停止推流、录制、回放缓存和虚拟摄像头
- 静音输入、设置音量,切换来源和滤镜
- 场景、时间码、帧率和丢帧数的实时变量
- 可同时连接多个 OBS 实例
OBS Studio 集成通过 OBS 内置的 WebSocket 服务器(obs-websocket 5)将 Macro Deck 连接到 OBS。连接后,按键几乎可以控制直播期间在 OBS 中所做的一切,OBS 也会报告每次变化,因此面板始终显示当前状态。
可以做什么
- 切换节目场景、工作室模式下的预览场景、配置文件或场景集合。
- 开始、停止或切换推流、录制、回放缓存和虚拟摄像头,保存回放、暂停录制、分割录制文件或添加章节标记。
- 在场景中显示或隐藏来源,启用或禁用滤镜,将输入静音或以百分比或 dB 更改其音量。
- 更改来源的某项设置,例如文本来源的文字、图像或媒体来源的文件,或浏览器来源的 URL。
- 按名称启动和停止任意 OBS 输出,包括插件添加的输出。
一些示例设置:
- 一个 马上回来 按键,切换到 BRB 场景并将麦克风静音。
- 一个 录制 按键,切换录制并显示 OBS 正在录制、已暂停还是已停止。
- 一个绑定到音乐输入的
obs_<input>_volume变量的滑块,移动滑块即可更改 OBS 中的音量。 - 一个在 OBS 报告 推流已开始 时运行的流程,向你发送通知。
运行方式
Macro Deck 会监听 OBS 发送的事件,因此当前场景、静音状态和滤镜状态等变量会在 OBS 中更改后的一瞬间更新。切换按键在其状态处于活动时会亮起,即使是在 OBS 中更改的也一样。帧率、CPU 使用率、码率和丢帧数等统计信息每一到两秒读取一次。
除了固定变量外,变量选择器还会列出所连接 OBS 的每个输入、场景、场景项和滤镜,以及其音量、静音状态、可见性或启用状态。触发器可以响应场景变化、录制和推流变化、保存的回放和截图、输入变为活动,以及你自己的 OBS 脚本广播的自定义事件。
可以添加多个配置,例如一个用于推流电脑,一个用于游戏电脑。每个配置都有自己的一组变量,每个动作都有一个 配置 字段,用于选择要控制的 OBS。当 OBS 关闭或网络中断时,Macro Deck 会持续尝试重新连接,并触发 已断开连接 和 已连接 触发器。
准备工作
- Windows、macOS 或 Linux 上的 Macro Deck 3
- OBS Studio 28 或更高版本(包含 obs-websocket 5)
- 已在 OBS 的“工具 > WebSocket 服务器设置”中开启 WebSocket 服务器
- 按名称启动和停止输出需要 obs-websocket 5.7 或更高版本
设置步骤
第 1 步: 在 OBS 中开启 WebSocket 服务器
在 OBS 中打开 工具 > WebSocket 服务器设置,勾选 开启 WebSocket 服务器。记下 服务器端口(默认为
4455)。如果勾选了 开启身份认证,请点击 显示连接信息 查看密码。第 2 步: 在 Macro Deck 中打开 OBS Studio
在 Macro Deck 中,点击侧边栏中的 集成,然后点击 OBS Studio。在 概览 选项卡的 配置 部分中点击 添加配置。打开右上角的开关也会打开同一个对话框,完成设置后集成即会启用。
第 3 步: 输入连接信息
在 连接 OBS Studio 对话框中填写:
- 配置名称:自己选择的名称,例如
Streaming PC。 - 主机:OBS 在同一台电脑上运行时为
127.0.0.1,否则为运行 OBS 的电脑的 IP 地址。 - 端口:OBS 中的服务器端口,默认为
4455。 - 密码:OBS 中的密码。如果关闭了身份认证,请留空。
点击 继续。Macro Deck 会先测试连接,再保存配置。
- 配置名称:自己选择的名称,例如
第 4 步: 为按键添加 OBS 动作
在 面板 页面上,点击要使用的按键。面板必须处于解锁状态:右上角的按钮显示为 锁定 时,面板即为解锁状态。编辑器打开时已选中 短按。点击 + 添加动作,在 添加动作 对话框左侧选择 OBS Studio,然后选择一个动作,例如 设置场景。选择 配置 和 场景,然后点击 保存。
第 5 步: 按下按键
在手机、平板或 Web 客户端上按下该按键。OBS 会切换到所选的场景。如果没有反应,请确认 OBS 正在运行,并且在 集成 下的 OBS Studio 页面上,该配置显示为 已连接。
动作35
可以放在按键上,也可以在流程中运行。
- 设置场景
- 切换当前的节目场景。
- 设置预览场景
- 切换工作室模式下的预览场景。
- 设置配置文件
- 将 OBS 切换到另一个配置文件。
- 设置场景集合
- 将 OBS 切换到另一个场景集合。
- 开始录制
- 开始录制。
- 停止录制
- 停止录制。
- 切换录制
- 开始或停止录制,并显示 OBS 正在录制、已暂停还是已停止。
- 暂停/继续录制
- 暂停或继续当前的录制。
- 开始推流
- 开始推流。
- 停止推流
- 停止推流。
- 切换推流
- 开始或停止推流。
- 启动虚拟摄像头
- 启动虚拟摄像头。
- 停止虚拟摄像头
- 停止虚拟摄像头。
- 切换虚拟摄像头
- 启动或停止虚拟摄像头。
- 启动回放缓存
- 启动回放缓存。
- 停止回放缓存
- 停止回放缓存。
- 切换回放缓存
- 启动或停止回放缓存。
- 保存回放缓存
- 将当前的回放缓存保存到磁盘。
- 分割录制文件
- 在录制继续进行的同时开始一个新的录制文件。
- 创建录制章节
- 在正在录制的文件中添加章节标记(仅限 Hybrid MP4 格式)。
- 设置录制文件夹
- 设置 OBS 写入新录制文件的文件夹。
- 启动输出
- 按名称启动 OBS 输出,包括插件添加的输出。
- 停止输出
- 按名称停止 OBS 输出,包括插件添加的输出。
- 切换输出
- 按名称启动或停止 OBS 输出,包括插件添加的输出。
- 获取输出状态
- 将 OBS 输出是否处于活动状态读取到变量中。
- 设置来源可见性
- 在场景中显示、隐藏或切换来源。
- 输入静音
- 将音频输入静音、取消静音或切换静音状态。
- 设置输入音量
- 以百分比或 dB 设置、增大或减小音频输入的音量。
- 设置来源滤镜
- 启用、禁用或切换来源上的滤镜。
- 更改输入设置
- 更改来源的一项设置,例如文本来源的文字或浏览器来源的 URL。
- 获取输入音量
- 将音频输入的音量百分比读取到变量中。
- 获取滤镜状态
- 将来源滤镜是否启用读取到变量中。
- 获取输入静音状态
- 将音频输入是否静音读取到变量中。
- 获取来源可见性
- 将来源在场景中是否可见读取到变量中。
- 切换工作室模式
- 开启或关闭工作室模式。
触发器24
按键或流程可以对这些事件做出响应。
- 场景已更改
- 节目(直播)场景发生了变化。可选择仅限某一个场景。
- 预览场景已更改
- 工作室模式下的预览场景发生了变化。
- 录制已开始
- OBS 已开始录制。
- 录制已停止
- OBS 已停止录制。
- 录制已暂停
- 录制已暂停。
- 录制已继续
- 录制已继续。
- 录制文件已更改
- 录制已开始、切换到新文件或已停止,附带文件路径。
- 推流已开始
- OBS 已开始推流。
- 推流已停止
- OBS 已停止推流。
- 回放缓存已启动
- 回放缓存已启动。
- 回放缓存已停止
- 回放缓存已停止。
- 回放缓存已保存
- 一段回放片段已写入磁盘,附带其文件路径。
- 截图已保存
- OBS 已将截图保存到磁盘,附带其文件路径。
- 虚拟摄像头已启动
- 虚拟摄像头已启动。
- 虚拟摄像头已停止
- 虚拟摄像头已停止。
- 工作室模式已更改
- 工作室模式已开启或关闭。
- 输入静音状态已更改
- 某个音频输入被静音或取消静音。可选择仅限某一个输入。
- 输入变为活动
- 某个输入开始在节目输出中渲染,例如摄像头开始直播。
- 输入变为非活动
- 某个输入停止在节目输出中渲染。
- 输入开始显示
- 某个输入开始在节目或预览输出中渲染。
- 输入停止显示
- 某个输入不再在节目或预览输出中渲染。
- 自定义事件
- OBS 脚本或插件广播了一个自定义事件。可选择仅限某一个事件名称。
- 已连接
- Macro Deck 已连接到 OBS,且 OBS 已完成加载。
- 已断开连接
- 与 OBS 的连接已中断。
变量14
在按键和组件上显示这些值,或在条件中使用它们。
obs_<configuration>_is_connected- Macro Deck 是否已连接到此 OBS。
obs_<configuration>_current_scene- 当前的节目场景。
obs_<configuration>_preview_scene- 工作室模式下的预览场景。
obs_<configuration>_current_profile- 当前的配置文件。
obs_<configuration>_current_scene_collection- 当前的场景集合。
obs_<configuration>_is_recording,obs_<configuration>_recording_paused,obs_<configuration>_recording_timecode- OBS 是否正在录制或已暂停,以及录制已进行多久。
obs_<configuration>_is_streaming,obs_<configuration>_streaming_timecode- OBS 是否正在推流以及推流了多久。
obs_<configuration>_virtual_camera_active,obs_<configuration>_replay_buffer_active,obs_<configuration>_studio_mode_active- 虚拟摄像头、回放缓存和工作室模式是否开启。
obs_<configuration>_fps,obs_<configuration>_max_fps,obs_<configuration>_cpu_usage- OBS 报告的性能数据。
obs_<configuration>_streaming_bitrate,obs_<configuration>_recording_bitrate- 当前的输出码率,单位为 kbps。
obs_<configuration>_dropped_frames,obs_<configuration>_dropped_frames_percent,obs_<configuration>_skipped_frames,obs_<configuration>_skipped_frames_percent- 推流的丢帧数和编码器的跳帧数,以数量和百分比表示。
obs_<configuration>_last_recording_file,obs_<configuration>_last_screenshot- 最新录制文件和截图的路径。
obs_<input>_volume,obs_<input>_muted等- 所选的每个输入的值:以 dB 为单位的音量(可写入,因此可以用滑块设置)、静音、活动、显示、音轨(
obs_<input>_track_1到_6)、监听类型、同步偏移及其设置。选择器会建议这些名称,也可以自行更改。 obs_<scene>_<source>_visible,obs_<source>_<filter>_enabled- 来源在场景中是否可见,以及滤镜是否启用。选择器会建议这些名称,也可以自行更改。
常见问题解答
OBS 运行在另一台电脑上时能用吗?
能。将运行 OBS 的电脑的 IP 地址填为 主机,并在该电脑的防火墙中放行端口(默认为 4455)。设置录制文件夹 或 更改输入设置 等动作中的路径是运行 OBS 的电脑上的路径。
可以控制多个 OBS 吗?
可以。通过 添加配置 为每个 OBS 实例添加一个配置。每个配置都有自己的变量,每个动作都有一个 配置 字段,用于选择要控制的 OBS。
OBS 关闭或连接中断时会怎样?
Macro Deck 会在后台持续尝试重新连接,OBS 恢复后即会再次连接。在此之前,动作会失败并显示 OBS 未连接。,同时会触发 已断开连接 和 已连接 触发器,以便流程做出响应。
动作为什么会失败?
动作会显示原因,例如某个场景或来源已不存在、OBS 仍在加载场景集合,或者 OBS 未在录制(针对 分割录制文件 和 创建录制章节)。如果在 OBS 中重命名了某项内容,请在动作中重新选择。
WebSocket 密码存储在哪里?
Macro Deck 将密码加密存储在运行 Macro Deck 的电脑上,并且只用它来连接 OBS。
“直播”分类中的更多集成
Meld Studio
Macro Deck 自带在 Meld Studio 中切换和暂存场景,控制图层、效果和音轨,并开始直播。
Streamlabs Desktop
Macro Deck 自带在 Streamlabs Desktop 中切换场景,控制推流、录制和音频来源。
Streamer.bot
Macro Deck 自带运行 Streamer.bot 动作、发送聊天消息,并对 Streamer.bot 报告的每个事件做出响应。
Twitch
Macro Deck 自带显示 Twitch 聊天和直播数据,进行管理、发起投票和播放广告,并对关注、订阅和突袭做出响应。
YouTube
Macro Deck 自带显示 YouTube 直播聊天和直播统计,更改标题和标签,并对 Super Chat 和会员做出响应。