如何用 OBS 和 WebSockets 播放视频流( 二 )


如何用 OBS 和 WebSockets 播放视频流

文章插图
“Websocket Out” 节点配置
进入 “WebSocket In” 流程!打开 “WebSocket In” 节点,并对其设置 Type 为 Connect to 和我们之前定义的连接的 URL(应自动填充) 。接下来是第二个 “JSON” 节点,我们可以不用管它 。它接受 OBS 的输出,并将其转换为有效载荷对象 。
接下来,我们将从中过滤出常规的心跳和状态更新 。打开 “Switch”,将 Property 值设置为 payload["update-type"] 。现在从它下面的下拉菜单中选择 Is Not Null 。点击 + 添加第二个选项,并从下拉菜单中选择 otherwise 。
如何用 OBS 和 WebSockets 播放视频流

文章插图
“Switch” 节点配置
将 “Switch” 上的新输出直接连接到 “Debug” 节点的输入 。
RBE 节点将过滤掉重复的内容,需要告诉它要观察什么字段 。由于它应该连接到 “Switch” 的输出,而它只发送状态更新,所以这一点很重要,因为 obs-websocket 每隔几秒钟就会发送更新 。默认情况下,RBE 会比较整个有效载荷对象,它将不断变化 。打开 RBE 节点,将 Property 从 payload 改为 payload.streaming 。如果 payload 的 streaming值发生了变化,那么就把消息传递过去,否则就丢弃 。
最后一步是将 “Debug” 节点的输出从 msg.payload 改为完整的 msg 对象 。这使我们能够看到整个对象,有时在 payload 之外还有有用的信息 。
现在,单击 “Deploy” 以激活更改 。希望 WebSocket 节点下面会有绿色的 Connected 消息 。如果它们是红色或黄色的,则连接 URL 可能不正确,需要更新,或者连接被阻止 。请确保远程机器上的 4444 端口是开放的、可用的,并且 OBS 正在运行!
如果没有 RBE 节点对 streaming 值的过滤,调试面板(点击画布右侧的“虫子”图标)大约现在就会被心跳消息填满 。点击 “Inject” 节点左边的按钮,发送一个模拟按钮点击的信号 。如果一切顺利,你应该会看到一个对象到达,它有一个 obs-websocket 可以做的所有事情的列表 。
如何用 OBS 和 WebSockets 播放视频流

文章插图
对 “GetVersion” 的回应
现在在另一个标签或窗口中打开 http://localhost:1880/ui 。它应该显示一个单一的按钮 。按下它! 调试面板应该会显示和之前一样的信息 。
恭喜你!你已经发送了你的第一个(希望不是最后一个)WebSocket 消息!
这只是使用 obs-websockets 和 Node-RED 可以做的事情的起步 。支持的完整文档记录在 obs-websockets 的 GitHub 仓库的 protocol.md 文件中 。通过一点点的实验,你可以创建一个功能齐全的控制面板来启动和停止流媒体、改变场景,以及更多 。如果你和我一样,在意识到之前,你就可以设置好各种控件了 。
如何用 OBS 和 WebSockets 播放视频流

文章插图
如此多的能力让我有点疯


推荐阅读