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

▒ 目录 ▒

    • 🛫 导读
      • 需求
      • 开发环境
    • 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/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

QML中Image动态显示图片内容

1.定义一个ColorImageProvider类 #ifndef COLORIMAGEPROVIDER_H #define COLORIMAGEPROVIDER_H#include <QObject> #include <QImage> #include <QQuickImageProvider>#include <QTimer>class ColorImageProvider :public QObject, public QQuickImag…

线上品牌展厅:打造数字品牌形象,助力品牌宣传

引言&#xff1a; 在数字化时代&#xff0c;随着互联网的普及和电子商务的发展&#xff0c;线上品牌展厅成为越来越多品牌关注的焦点。 一&#xff0e;什么是线上品牌展厅 1.线上品牌展厅的定义 线上品牌展厅是指通过互联网或移动应用程序等在线平台&#xff0c;展示品牌产品…

如何用postman进行http接口测试?

HTTP的接口测试工具有很多&#xff0c;可以进行http请求的方式也有很多&#xff0c;但是可以直接拿来就用&#xff0c;而且功能还支持的不错的&#xff0c;我使用过的来讲&#xff0c;还是postman比较上手。 优点&#xff1a; 1、支持用例管理 2、支持get、post、文件上传、…

python 安装对应版本的lxml

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

java设计模式-工厂方法模式

1.工厂方法(FactoryMethod)模式的定义 定义一个创建产品对象的工厂接口&#xff0c;将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。 2.工厂方法模式的主要优缺点 优点&#xff1a; 用户只需要知道具体工厂的名称…

数字海洋贸易:跨境电商的无边界冒险

数字时代的到来让商业舞台向全球开放&#xff0c;而跨境电商作为数字海洋中的一艘船&#xff0c;正在进行一场无边界的冒险。本文将深入探讨数字海洋贸易的概念&#xff0c;分析跨境电商在这个无边界环境中面临的挑战与机遇&#xff0c;以及如何在这个冒险中实现可持续的成功。…

【Java系列】详解多线程(二)——Thread类及常见方法(上篇)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Java系列专栏】【JaveEE学习专栏】 本专栏旨在分享学习Java的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 一…

Git命令大全:从基础到高级应用

目录 一、增加/删除文件 1.1 添加文件到暂存区 1.2 添加所有文件到暂存区 1.3 从暂存区移除文件 1.4 从版本库和工作区删除文件 二、代码提交 2.1 提交暂存区文件到本地仓库 2.2 修改最后一次提交信息 三、本地分支 3.1 创建新分支 3.2 切换分支 3.3 创建并切换到新分支 3.4 删…

4G工业路由器物联网解决方案智慧储能系统

储能系统是用于电网和用户间起到电力缓冲和削峰填谷作用的电力管理平台。储能系统通常由电池、充电机、控制器、电能质量治理装置及监控系统组成。主要应用于可再生能源发电系统&#xff0c;电力需求侧响应&#xff0c;电动汽车充电等领域。 4G工业路由器是一款专门针对物联网…

Leetcode 46 全排列

题意理解&#xff1a; 首先明确全排列是什么&#xff1f; 使用集合里所有的元素&#xff0c;使用不同的顺序进行排列&#xff0c;所有的排列集合即为全排列。 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 这里的元素不会…

python程序编程代码大全,python编程代码详解

这篇文章主要介绍了python语言的代码书写规则有哪些&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获&#xff0c;下面让小编带着大家一起了解一下。 Python代码主要由&#xff1a;5个部分组成&#xff0c;下面就分别介绍&…

子目录文件夹图片汇总

import os import shutildef collect_images(source_folder, target_folder):# 遍历主文件夹及其所有子文件夹for root, dirs, files in

【论文精读ICCV_2023】BlendFace: Re-designing Identity Encoders for Face-Swapping

【论文精读ICCV_2023】BlendFace: Re-designing Identity Encoders for Face-Swapping 一、前言Abstract1. Introduction2. Related Work3. Attribute Bias in Face Recognition Models3.1. Identity Distance Loss3.2. Analysis of Identity Similarity 4. BlendFace4.1. Pre-…

linux下sys目录与proc目录的作用

sys目录作用 在Linux系统中&#xff0c;/sys目录是一个特殊的虚拟文件系统&#xff08;sysfs&#xff09;&#xff0c;用于提供对内核和设备的运行时信息的访问。它是在内核中运行的驱动程序和子系统的接口&#xff0c;可以用于获取和配置系统的硬件和内核信息。 以下是/sys目…

uniapp原生插件之安卓虹软人脸识别增值版原生插件

插件介绍 虹软人脸识别增值版支持在线激活&#xff0c;离线激活&#xff0c;支持图片人脸识别&#xff08;可识别网络图片&#xff09;&#xff0c;活体检测&#xff0c;离线识别&#xff0c;相机预览旋转&#xff0c;相机人脸识别&#xff0c;批量注册&#xff08;支持网络图…

Spring(Spring/Springboot 的创建) 基础

一. Spring 1.1 Spring是什么&#xff1f; Spring 指的是 Spring Frameword(Spring 框架),它是一个开源框架。 Spring 是包含了众多工具方法的IoC容器。 1.2 什么是容器&#xff1f; 容器时用来容纳某种物品的装置。 我们之前接触到的容器&#xff1a; • List/Map ->…

MySQL基础笔记

MySQL 1. SQL1.1 SQL-DDL语句1.1.1 数据库操作1.1.2 表操作 1.2 MySQL-DML语句1.3 MySQL-DQL语句1.3.1 基本查询1.3.2 条件查询1.3.3 聚合函数1.3.4 分组查询1.3.5 排序查询1.3.6 分页查询 1.4 MySQL-DCL语句1.4.1 管理用户1.4.2 权限控制 2. 函数2.1 字符串函数2.2 数值函数2.…

事件相互独立

两个事件的情况 定义&#xff1a;假设A、B是两个事件&#xff0c;如果满足&#xff0c;那么就称这两个事件相互独立。 如果&#xff0c;那么A、B相互独立和互不相容不能同时成立。 互相独立意思是一个事件的发生跟另外一个事件是否发生没有关系。而互不相容的意思是两个事件…

你真的了解进程注入吗?

关注公众号回复20231110获取最新网络安全以及内网渗透等资料。 文章目录 关注公众号回复20231110获取最新网络安全以及内网渗透等资料。进程注入进程注入是什么&#xff1f;windows进程虚拟地址空间句柄Tokens线程数特权shellcode注入 进程注入 进程注入是什么&#xff1f; 攻…

《HumanGaussian: Text-Driven 3D Human Generation with Gaussian Splatting》

文章目录 前置知识&#xff1a;一、正文&#xff1a;二、方法 前置知识&#xff1a; \quad 1&#xff09;SMPL&#xff08;Skinned Multi-Person Linear&#xff09;模型 \quad SMPL&#xff08;Skinned Multi-Person Linear&#xff09;模型是一种用于表示人体形状和姿势的三维…