【obs】官方最强插件obs-websocket入门

本文介绍了OBS-websocket用于低延迟远程控制的功能,包括不同OBS版本的兼容性,obs-websocket-js的开发和使用,以及OBS-web的特性与安装配置。还讨论了其他相关开源项目如obs-tablet-remote和obs-studio-node。
摘要由CSDN通过智能技术生成

🛫 导读

需求

随着视频行业的崛起,越来越多的视频录制需求应运而生,小编也悲催的加入了此行业。
obs提供了多种方式的扩展,如插件、lua脚本、python脚本支持等。
除此之外,更是提供了obs-websocket这样的神器,很多插件及软件都是基于该插件实现的,我们可以从官网的知识库中了解到该插件的强大
在这里插入图片描述

开发环境

版本号描述
文章日期2023-12-13
操作系统Win10 - 22H219045.3570
OBS30.0.0最新的OBS版本
OBS27.2.4最后的32位版本
OBS22.0.2某老版本,测试v4功能

1️⃣ obs-websocket

简介

利用ws实现高效低延迟的局域网远程操控,让用户可以通过局域网内的其他设备,如手机、ipad、平板,进行常用的obs操作。
也可以根据obs-websocket进行OBS的自动化或插件开发。

OBS版本说明

  • 28.0.0及之后的版本: 使用了Qt6,并且不再支持x86架构。
  • 27.2.4: 目前OBS最后支持x86的版本,27.x版本目前一直在维护,同步OBS新版本的功能。
  • 27.x之前的OBS: 不推荐使用,需要自己去同步新版本的功能或者bug修复代码。

obs-websocket版本说明

  • OBS Studio 28.0.0及以上版本默认包含obs-websocket。因此,如果您使用的是 OBS Studio > 28.0.0,则无需下载 obs-websocket。
  • OBS Studio 28.0.0以下 的版本,需要在github上下载对应的obs-websocket版本(高于28的不再提供可执行文件)。
    • 5.x 支持27.x
    • 4.x 支持27.x以下的版本,如OBS22.0.2在git上可以查看到,需要使用4.5.1版本的obs-websocket
    • 3.x 未研究

安装(27.x版本OBS)

  1. github上,下载obs-websocket-5.0.1-Windows.zip模块。
    或者直接在csdn上下载:https://download.csdn.net/download/kinghzking/88626050
  2. 打开obs-websocket-5.0.1-Windows.zip,可以发现其目录结构和obs程序是一样的,直接将压缩包内容解压到对应目录即可完成安装。
    在这里插入图片描述

配置插件

  1. 打开设置对话框
    点击菜单工具,然后选择obs-websocket Settings子菜单。
    在这里插入图片描述
  2. 按照下面图片中设置,开启obs-websocket服务:
    在这里插入图片描述

2️⃣ OBS-web

介绍

obs-websocket提供了obs的服务能力,根据WebSocket协议,出现了很多三方控制软件。
OBS-web就是其中比较出名的一款web应用,界面效果如下图所示,拥有了录屏的各种能力。
界面如下图所示:
在这里插入图片描述

特征

  • 无需安装额外的软件,适用于任何现代浏览器(桌面+移动设备)
  • 支持通过 WSS 隧道进行本地网络和 Internet 控制
  • 轻松切换场景并启动/停止流媒体录制
  • 支持演播室模式(预览和节目场景)
  • 支持虚拟摄像机
  • 预览和输出的实时视图,更新1 fps
  • 全屏按钮和唤醒锁支持(保持屏幕开启)
  • “重播缓冲区”按钮
  • 通过在 URL 中指定主机轻松添加书签/深层链接
  • 支持配置文件切换
  • 支持场景集合切换
  • 自定义过渡支持
  • 额外功能:
    • 隐藏名称中包含的场景(hidden)
    • 通过缩略图直观地切换场景中名称中的源(switch)

使用方法-5.x

  1. 打开软件(通过以下几种方案均可打开)
  1. 连接服务器
    就像登录网站一样,输入地址和密码即可连接服务器,需要注意下面几项:
  • 对于https网页,需要输入wss
  • 针对不同obs,选择不同版本obs-websocket插件
  • 区分5.x和4.x版本的obs-websocket,访问地址不一样(/v4)。
  • 打开本地页面(v4/index.htmlindex.html),不需要区分ws和wss。
    在这里插入图片描述
  1. 登录成功后,直接根据界面显示,可以执行响应的功能。

http vs https

连接如果报错,请注意是否是协议安全问题:

  • ws需要访问页面 http://obs-web.niek.tv/
  • wss需要访问页面 https://obs-web.niek.tv/
    在这里插入图片描述

3️⃣ obs-websocket-js

上小节中的OBS-web,底层调用的是obs-websocket-js库,该库提供了WebSocket的封装,支持4.x和5.x协议的obs-websocket。

开发

  1. 安装:
  • 执行命令:npm install obs-websocket-js
  • 对应4.x协议,需要指定版本:npm install obs-websocket-js@4.0.2
  1. 示例:
import OBSWebSocket, {EventSubscription} from 'obs-websocket-js';
const obs = new OBSWebSocket();

// connect to obs-websocket running on localhost with same port
await obs.connect();

// Connect to obs-ws running on 192.168.0.4
await obs.connect('ws://192.168.0.4:4455');

// Connect to localhost with password
await obs.connect('ws://127.0.0.1:4455', 'super-sekret');

// Connect expecting RPC version 1
await obs.connect('ws://127.0.0.1:4455', undefined, {rpcVersion: 1});

// Connect with request for high-volume event
await obs.connect('ws://127.0.0.1:4455', undefined, {
  eventSubscriptions: EventSubscription.All | EventSubscription.InputVolumeMeters,
  rpcVersion: 1
});

// A complete example
try {
  const {
    obsWebSocketVersion,
    negotiatedRpcVersion
  } = await obs.connect('ws://192.168.0.4:4455', 'password', {
    rpcVersion: 1
  });
  console.log(`Connected to server ${obsWebSocketVersion} (using RPC ${negotiatedRpcVersion})`)
} catch (error) {
  console.error('Failed to connect', error.code, error.message);
}

tester.html

obs-websocket-js库中提供了一个十分有用的工具tester.html,十分的实用,可以测试所有支持的协议。
下载地址为: https://github.com/obs-websocket-community-projects/obs-websocket-js/releases
文件路径为:samples/web-tester/dist/tester.html
界面如下:
在这里插入图片描述

特别需要注意的是: 该工具只支持4.x版本的协议,作者并没有对5.x版本做兼容。
需要测试的话,请使用OBS27以前的版本,小编使用的是OBS22.0.2

4️⃣ 其它开源项目

obs-tablet-remote

类似于OBS-web的一个开源项目,不过很久没更新了,不支持5.x协议。

obs-studio-node

node版本的一个obs库,跟obs-websocket无关,但是很强大,特此推荐,github地址: https://github.com/stream-labs/obs-studio-node

stream-lab-desktop

基于obs-studio-node的electron应用,商业化、开源软件,值得学习。

🛬 文章小结

这里总结下各个软件的版本问题:

  • obs-websocket插件github上最新的release版本为4.9.1,该版本是一个只支持28.0以上的版本,也就是只支持x64,慎用!!!
  • obs-websocket插件5.x版本统一了27版本,也就是同时支持32和64位;但是不支持27以前的版本
  • obs-websocket-js版本的tester.html,工具好用,但是只支持4.x版本的obs-websocket。(obs-websocket-js是支持5.x的,只是作者没有更新tester.html工具)
  • obs-web可远程控制obs,分为4.x和5.x两个版本,不过功能有限。

下面是各个软件及库不同版本的比较:

OBS版本30.0.0(x64)27.2.4(x86)22.0.2(x86)
obs-websocket插件版本5.3.3(obs自带)5.0.14.5.1
obs-websocket-js版本的tester.html不可用不可用4.0.3
obs-web版本v5v5v4
obs-websocket可用接口个数14214178

📖 参考资料

1、中文简繁互换:在简体中文和繁体中文之间进行转换。 2、进制转换:在二进制、八进制、十进制、十六进制之间相互转换。 3、人民币大小写互换:在Excel中,很多时候需要将小写的金额数字转换成大写,而Excel提供的函数转换出来的格式并不符合中国人的习惯,所以... 4、数字签名:对Excel表格中的内容进行签名保护,主要是防止提供者提供的内容被非法修改。可以用于Excel公文的电子签名,实现真正的无纸办公... 5、保存为图片文件:相当于Excel的照相机功能(有过之而无不及)。可以将Excel中的单元格区域、Shape对象、图片、图表等(甚至是组合形式)以gif、jpg、bmp等各式保存到磁盘中。 6、全功能批注----真正所见即所得的批注编辑器。 7、VB/VBA代码归纳与重写:对VB/VBA代码进行混淆,大大降低代码的可读性,是一种保护VB/VBA代码的很有效的方法。详细的注释说明和一目了然的名称将有助于设计阶段的调试和查错,但是代码一旦发布后,这些优点将会使黑客轻而易举地破解你的成果,呵呵,用这个吧,保证黑客对您的VB/VBA代码一点兴趣和胃口都没有!! 8、解除Excel文档的内部密码。很多时候,我们需要设置Excel表格/工作簿的保护密码,可是随着时间的推移,这些密码很可能遗忘了,怎么办?很着急啊!!!哈哈,用这个保证在2分钟之内解决问题(换个角度:不要再自欺欺人了,Excel的内部密码形同虚设)。 9、信息加密/解密。对Excel文档中的一些敏感信息进行加密处理,即使文档被破解了,里面的信息仍然很安全。可以说这个功能是对Excel安全的一个有力补充。 10、工程代码锁定解锁器。可以撤销Excel的VBA保护密码(对word、Access同样有效) 11、控制和保存功能。这个功能能满足我们不用记一个密码就能非常有效地保护我们的Excel文档,而且可以免除来自微软的威胁。 12、Cookie管理器。在信息时代,没有网络怎么可以?上网时间长了,就会发现在临时文件夹中挤满了cookies,不但占据磁盘空间,而且还可能泄露秘密。用“清理cookie”命令吧,又觉得有些没有必要删,否则下次还得再输一遍;一个一个删吧,东西太多,想都不能想。怎么办??用这个啊!!只要一次性设置要保留的cookie并选中“退出Excel时自动清理”即可。以后只要退出Excel,你的cookies目录中就不会再有其它乱七八糟的cookie了。 13、超级预览。可以根据当前的选择内容自动调整预览对象。如果选中的是单元格区域,就只预览你选中的区域;如果选中的是图表,则仅预览选中的图表;如果只是一个单元格,则自动显示分页符... ... 14、屏幕锁定。当我们需要临时离开电脑而又不想关闭Excel文档时(并不局限于Excel文档,也可以是其它,但前提是要运行Excel),可以启动这个功能,这样其他人就不可能看到您不希望他们看到的东西。 15、尝试打开忘记密码的文件。暴力破解Excel的打开密码,注意:这个仅对拥有密码设计方案的人有效。 16、Excel加载项/宏管理器。对当前Excel环境下的加载宏/加载项/VBA加载项进行列表,并可以查看相关属性、修改运行状态,甚至是一键破解。 17、Excel对象管理器,可以批量转换Excel中的对象(图片、Shape、图表等)到图片文件; 18、在Excel中播放背景音乐、定时执行特定的程序、整点报时,一定很惬意... 19、屏幕录像及捕捉。哦,这个功能很强大啊。可以截取屏幕图像、录制屏幕变化、图片格式转换、批量bmp转成AVI文件、AVI文件转成动画GIF文件、图片标注... ...强大的不行啦,赶快去看看吧。快捷键:Ctrl+Alt+SpaceBar 或者 Ctrl+左WinKey(微软左徽标键) 20、DLL神探,DLL的最大威胁就是注入到系统进程中,让人防不胜防... 21、一键恢复Excel的系统菜单。这个功能... ... 22、Excel版简易游戏。只是几个可以在Excel中玩的游戏... 23、计划横道图(甘特图)。偶觉得还是用Excel来做横道图最方便了... ... 24、偶将呆板的网络调查和网络投票移植到OBS.DLL中了,变被动为主动! 。。。。。
obs-websocket-java是一个用于通过WebSockets远程控制OBS Studio的Java库。它提供了与obs-websocket API进行交互的功能。您可以使用obs-websocket-java来编写Java应用程序,以实现对OBS Studio的远程控制和自动化操作。 以下是一个使用obs-websocket-java的简单示例: ```java import com.github.obsproject.obswebsocket.OBSWebSocket; import com.github.obsproject.obswebsocket.OBSWebSocketException; import com.github.obsproject.obswebsocket.requests.GetVersionRequest; import com.github.obsproject.obswebsocket.requests.SetCurrentSceneRequest; import com.github.obsproject.obswebsocket.requests.StartStreamingRequest; public class OBSWebSocketExample { public static void main(String[] args) { OBSWebSocket obsWebSocket = new OBSWebSocket("localhost", 4444, "password"); try { obsWebSocket.connect(); // 获取OBS Studio的版本信息 GetVersionRequest getVersionRequest = new GetVersionRequest(); String version = obsWebSocket.send(getVersionRequest).getObsStudioVersion(); System.out.println("OBS Studio版本:" + version); // 设置当前场景 SetCurrentSceneRequest setCurrentSceneRequest = new SetCurrentSceneRequest("Scene 1"); obsWebSocket.send(setCurrentSceneRequest); // 开始推流 StartStreamingRequest startStreamingRequest = new StartStreamingRequest(); obsWebSocket.send(startStreamingRequest); // 断开连接 obsWebSocket.disconnect(); } catch (OBSWebSocketException e) { e.printStackTrace(); } } } ``` 请注意,您需要将上述示例中的"localhost"替换为您运行OBS Studio的计算机的IP地址,并将"password"替换为您在OBS Studio中设置的密码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜猫逐梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值