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

news2024/12/26 21:44:15

▒ 目录 ▒

    • 🛫 导读
      • 需求
      • 开发环境
    • 1️⃣ obs-websocket
      • 简介
      • OBS版本说明
      • obs-websocket版本说明
      • 安装(27.x版本OBS)
      • 配置插件
    • 2️⃣ OBS-web
      • 介绍
      • 特征
      • 使用方法-5.x
      • http vs https
    • 3️⃣ obs-websocket-js
      • 开发
      • tester.html
    • 4️⃣ 其它开源项目
      • obs-studio-node
      • obs-studio-node
      • stream-lab-desktop
    • 🛬 文章小结
    • 📖 参考资料

🛫 导读

需求

随着视频行业的崛起,越来越多的视频录制需求应运而生,小编也悲催的加入了此行业。
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. 打开软件(通过以下几种方案均可打开)
  • 针对OBS 27.x及以后的版本
    • 直接打开网站 https://obs-web.niek.tv/
    • 直接打开网站 http://obs-web.niek.tv/
    • 打开本地页面index.html,文件下载地址为:https://download.csdn.net/download/kinghzking/88626295
  • 针对OBS 27.x以前的版本
    • 直接打开网站 https://obs-web.niek.tv/v4/
    • 直接打开网站 http://obs-web.niek.tv/v4/
    • 打开本地页面v4/index.html,文件下载地址为:https://download.csdn.net/download/kinghzking/88626295
  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。

  • obs-websocket-js的github地址:https://github.com/obs-websocket-community-projects/obs-websocket-js

开发

  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-studio-node

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

  • github地址:https://github.com/t2t2/obs-tablet-remote

obs-studio-node

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

stream-lab-desktop

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

  • 官网: https://streamlabs.com/zh-cn/
  • github地址: https://github.com/stream-labs/desktop
  • demo地址: https://github.com/stream-labs/streamlabs-api-demo

🛬 文章小结

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

  • 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

📖 参考资料

  • 官网知识库介绍: https://obsproject.com/zh-cn/kb/remote-control-guide
  • obs-websocket的github地址: https://github.com/obsproject/obs-websocket
  • obs-websocket的协议文档: https://github.com/obsproject/obs-websocket/blob/master/docs/generated/protocol.md
  • obs-websocket-js的github地址:https://github.com/obs-websocket-community-projects/obs-websocket-js
  • OBS-web官网: https://obs-web.niek.tv/
  • OBS-web的github地址:https://github.com/Niek/obs-web
  • streamlabs desktop https://streamlabs.com/zh-cn/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1307722.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

做题笔记:SQL Sever 方式做牛客SQL的题目--查询每天刷题通过数最多的前二名用户

----查询每天刷题通过数最多的前二名用户id和刷题数 现有牛客刷题表questions_pass_record,请查询每天刷题通过数最多的前二名用户id和刷题数,输出按照日期升序排序,查询返回结果名称和顺序为: date|user_id|pass_count 表单创建…

双指针的运用——双数之和II和三数之和

两数之和 https://leetcode.cn/problems/two-sum-ii-input-array-is-sorted/description/ 我们考虑这个排序过的数组,首先一个指针在最左,一个在最右。如果这两个数字比目标数字来的要小,那么如果我们左边指针移动了,移动后一定变…

高通平台开发系列讲解(USB篇)linux下如何让U盘可以识别问题

文章目录 一、简述二、修改方法三、宏介绍沉淀、分享、成长,让自己和他人都能有所收获!😄 一、简述 对于一些U盘不能自动被Linux内核识别的情况,可能需要进行一些调整和修改内核驱动的设置。 二、修改方法 在kernel中开启以下的宏开关 CONFIG_USB_STORAGE=y CONFIG_SCSI=…

uniapp原生插件之安卓app添加到其他应用打开原生插件

插件介绍 安卓app添加到其他应用打开原生插件,接收分享的文本和文件,支持获取和清空剪切板内容 插件地址 安卓app添加到其他应用打开原生插件,支持获取剪切板内容 - DCloud 插件市场 超级福利 uniapp 插件购买超级福利 详细使用文档 u…

第三届《我们的世界》---2023 国际当代艺术展在广州沙面隆重启幕

开幕快讯 2023年12月10日下午,由法国表现主义画院与东方荟萃艺术学院 联合主办的,由法中艺术交流协会、香港博物馆世界、让米歇尔艺术空 间共同协办,法国驻广州总领事馆支持的第三届《我们的世界》---2023 国际当代艺术展在广州沙面隆重启幕! 嘉宾签到现场 本次展览集合了30位活…

50.0/表格(详细版)

目录 50.1 建立表格 50.2 表格边框 50.3 设置表格或单元格的宽度和高度 50.4 表格的背景设置 50.5 表格边框颜色的设置 50.6 表格的位置 50.6.1 水平位置 50.6.2 垂直位置 50.7 为表格添加表头和标题 50.8 单元格的合并 50.8.1 跨行 50.8.2 跨列 50.9 综合示例 通…

Android---Kotlin 学习005

substring 字符串截取。相加与 java,kt 里面的 substring 函数支持 IntRange 类型(表示一个整数范围的类型)的参数,until 创建的范围不包括上限值。 const val NAME "Jimmys friend" fun main(){val index NAME.ind…

python 安装对应版本的lxml

安装对应版本的lxml 先把对应版本的lxml文件下载下来,接着在文件夹路径输入cmd回车,用下面命令安装。

《洛谷深入浅出进阶篇》 进阶数论

本文章内容比较长,请耐心食用!!!!! 目录: 模意义下的数和运算喵~ 模意义下的乘法逆元喵~ 同余方程与中国剩余定理喵~ 线性筛与积性函数喵~ 欧拉函数喵~ 一,模意义下的数和运算。…

Android : Room 数据库的基本用法 —简单应用_一_入门

1.Room介绍: Android Room 是 Android 官方提供的一个持久性库,用于在 Android 应用程序中管理数据库。它提供了一个简单的 API 层,使得使用 SQLite 数据库变得更加容易和方便。 以下是 Android Room 的主要特点: 对象关系映射…

Ajax原理以及优缺点

Ajax原理 1.Ajax的原理简单来说是在用户和服务器之间加了—个中间层(AJAX引擎),通过XmlHttpRequest对象来向服务器发异步请求, 2.从服务器获得数据,然后用javascript来操作DOM而更新页面。使用户操作与服务器响应异步化。 3.这其中最关键的一…

SpringBoot 实现动态切换数据源

最近在做业务需求时,需要从不同的数据库中获取数据然后写入到当前数据库中,因此涉及到切换数据源问题。本来想着使用Mybatis-plus中提供的动态数据源SpringBoot的starter:dynamic-datasource-spring-boot-starter来实现。 结果引入后发现由于…

2024测试开发面试题完整版本(附答案)

目录 1. 什么是软件测试, 谈谈你对软件测试的了解 2. 我看你简历上有写了解常见的开发模型和测试模型, 那你跟我讲一下敏捷模型 3. 我看你简历上还写了挺多开发技能的, 那你给我讲讲哈希表的实现流程 4. 谈一谈什么是线程安全问题, 如何解决 5. 既然你选择走测…

云计算与大数据技术应用知识及案列

云计算与大数据技术应用知识及案列 简述什么是云计算? 答:云计算是一种动态扩展的计算模式,通过网络将虚拟化的资源作为服务提供;云计算是一种无处不在的、便捷的通过互联网访问一个可定制的IT资源(IT资源包括网络、服…

C++STL的stack和queue(超详解)

文章目录 前言stack栈的题目最小栈JZ31 栈的压入、弹出序列 stack的模拟实现queue的模拟实现 前言 栈和队列这一块其实有数据结构的基础,学起来非常简单。 stack 栈的成员函数就这么写,除了emplace其他都已经非常熟悉了。 stack没有迭代器吗&#xff…

芝麻杂草目标检测数据集VOC+YOLO格式近1300张

芝麻,芝麻科芝麻属的一年生草本植物,茎中空或具白色髓部;叶子为卵形;花朵单生或少数同生于腋下,呈白色;芝麻蒴果基部钝圆,顶部有尖,中间有棱;芝麻的种子通常呈扁平椭圆形…

MIT6.5840-2023-Lab2C: Raft-Persistence

前置知识 见上一篇 Lab2A。 实验内容 实现 RAFT,分为四个 part:leader election、log、persistence、log compaction。 实验环境 OS:WSL-Ubuntu-18.04 golang:go1.17.6 linux/amd64 Part 2C: persistence 大部分的bug都与这…

Go EASY游戏框架 之 RPC Guide 03

1 Overview easy解决服务端通信问题,同样使用了RPC技术。easy使用的ETCDGRPC,直接将它们打包组合在了一起。随着服务发现的成熟,稳定,简单,若是不用,甚至你也并不需要RPC来分解你的架构。 GRPC 有默认res…

产品入门第三讲:Axure产品流程图绘制

📚📚 🏅我是默,一个在CSDN分享笔记的博主。📚📚 ​​​​​ 🌟在这里,我要推荐给大家我的专栏《Axure》。🎯🎯 🚀无论你是编程小白,还…

电子学会C/C++编程等级考试2022年12月(五级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:漫漫回国路 2020年5月,国际航班机票难求。一位在美国华盛顿的中国留学生,因为一些原因必须在本周内回到北京。现在已知各个机场之间的航班情况,求问他回不回得来(不考虑转机次数和机票价格)。 时间限制:1000 内存限制:655…