【OBS】stream-labs-desktop 编译运行采坑全攻略

2024-03-05 21:52

本文主要是介绍【OBS】stream-labs-desktop 编译运行采坑全攻略,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

▒ 目录 ▒

    • 🛫 导读
      • 需求
      • 开发环境
    • 1️⃣ 安装yarn
      • 安装
    • 2️⃣ 安装依赖库:yarn install
      • certificate has expired
      • electron@npm:25.9.3 couldn't be built successfully
    • 3️⃣ 启动desktop项目
      • 编译
      • 调试模式启动
      • 启动缓慢问题
    • 4️⃣ 打包
    • 🛬 文章小结
    • 📖 参考资料

🛫 导读

需求

OBS学习过程中,发现宝藏开源软件stream-labs-desktop,简单研究下:

  • 通过js直接控制obs的神器。
  • electron作为载体,让前端同学轻松制作客户端软件。
  • 封装实用功能,方便开发和参考。

开发环境

版本号描述
文章日期2024-03-01
操作系统Win11 - 22H222621.2715
node -vv20.10.0
npm -v10.2.3
yarn -v3.1.1

1️⃣ 安装yarn

这里,小编使用的node版本是v20.10.0,建议使用相对高的版本尝试。

安装

stream-labs-desktop使用 Yarn 作为包管理器。建议使用 npm 安装它:
npm install -g yarn

2️⃣ 安装依赖库:yarn install

执行yarn install,安装依赖库,这个过程产生了下面几种错误。

certificate has expired

直接运行yarn install,会报下面错误

yarn install v1.22.21
[1/4] Resolving packages...
error Error: certificate has expiredat TLSSocket.onConnectSecure (node:_tls_wrap:1674:34)at TLSSocket.emit (node:events:514:28)at TLSSocket._finishInit (node:_tls_wrap:1085:8)at ssl.onhandshakedone (node:_tls_wrap:871:12)
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

这里可以通过下面两种方式修正该问题(如果失败,两种方案都试试)。

  1. 取消ssl验证:
    yarn config set strict-ssl false
    这个方法一般就可以解决了。
  2. 更换yarn镜像源:
    这里使用的yarn版本是3.1.1,需要使用的命令为(重要的事情说三遍)
    yarn config set npmRegistryServer http://registry.npm.taobao.org
    yarn config set npmRegistryServer http://registry.npm.taobao.org
    yarn config set npmRegistryServer http://registry.npm.taobao.org
    |
    旧版本使用的是yarn config set registry http://registry.npm.taobao.org,该命令在新的yarn中,会报如下错误:
    |

**ps:配置镜像地址(registry),同时可避免各种package无法正常下载的问题。

electron@npm:25.9.3 couldn’t be built successfully

这个报错是因为electron请求服务器连接的是外网,需要配置electron的国内镜像(如淘宝镜像)。
方案一:
修改全局变量,很简单。新建用户全局变量即可。
在这里插入图片描述
方案二:
直接在控制台中执行set命令:set ELECTRON_MIRROR=http://npm.taobao.org/mirrors/electron/
在这里插入图片描述

ps: 使用npm的时候,可以指定config值实现配置镜像,但是yarn命令没有对应的config值,无法进行设置:

  • npm config set ELECTRON_MIRROR http://npm.taobao.org/mirrors/electron/
  • npm config set ELECTRON_BUILDER_BINARIES_MIRROR https://npm.taobao.org/mirrors/electron-builder-binaries/

3️⃣ 启动desktop项目

编译

运行前需要通过webpack编译项目:

yarn compile

或者执行watch命令:

yarn watch

调试模式启动

项目默认只有yarn start启动项目,该模式未打开调试窗口。

项目中,包含环境变量SLOBS_PRODUCTION_DEBUG,该变量未启动调试相关的开关。
我们随意指定一个字符串即可开启调试模式。
为了方便运行,我们新增一个命令dev,之后通过yarn dev即可调试方式启动项目,如下图所示:
在这里插入图片描述

启动缓慢问题

小编通过yarn dev启动项目,会在下面的界面等待很久:
在这里插入图片描述

打开调试窗口,看到下面错误:
在这里插入图片描述
这是因为小编绑定了youtube账号,如果有遇到启动慢的问题,可查看控制台定位问题。

4️⃣ 打包

Windows应用包:

yarn package

macOS应用包:

yarn package:mac

🛬 文章小结

开发环境运行stream-labs-desktop,主要参考源码中的README.md文档。
遇到问题了,再一个个排查。

ps: 只支持 OSX 10.14+64-bit Windows

📖 参考资料

  • github地址: https://github.com/stream-labs/desktop

这篇关于【OBS】stream-labs-desktop 编译运行采坑全攻略的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/777928

相关文章

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

Java StringBuilder 实现原理全攻略

《JavaStringBuilder实现原理全攻略》StringBuilder是Java提供的可变字符序列类,位于java.lang包中,专门用于高效处理字符串的拼接和修改操作,本文给大家介绍Ja... 目录一、StringBuilder 基本概述核心特性二、StringBuilder 核心实现2.1 内部

Java Stream流与使用操作指南

《JavaStream流与使用操作指南》Stream不是数据结构,而是一种高级的数据处理工具,允许你以声明式的方式处理数据集合,类似于SQL语句操作数据库,本文给大家介绍JavaStream流与使用... 目录一、什么是stream流二、创建stream流1.单列集合创建stream流2.双列集合创建str

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Java中的stream流分组示例详解

《Java中的stream流分组示例详解》Java8StreamAPI以函数式风格处理集合数据,支持分组、统计等操作,可按单/多字段分组,使用String、Map.Entry或Java16record... 目录什么是stream流1、根据某个字段分组2、按多个字段分组(组合分组)1、方法一:使用 Stri

Java Stream流以及常用方法操作实例

《JavaStream流以及常用方法操作实例》Stream是对Java中集合的一种增强方式,使用它可以将集合的处理过程变得更加简洁、高效和易读,:本文主要介绍JavaStream流以及常用方法... 目录一、Stream流是什么?二、stream的操作2.1、stream流创建2.2、stream的使用2.

Python实现Word转PDF全攻略(从入门到实战)

《Python实现Word转PDF全攻略(从入门到实战)》在数字化办公场景中,Word文档的跨平台兼容性始终是个难题,而PDF格式凭借所见即所得的特性,已成为文档分发和归档的标准格式,下面小编就来和大... 目录一、为什么需要python处理Word转PDF?二、主流转换方案对比三、五套实战方案详解方案1:

Java Stream 的 Collectors.toMap高级应用与最佳实践

《JavaStream的Collectors.toMap高级应用与最佳实践》文章讲解JavaStreamAPI中Collectors.toMap的使用,涵盖基础语法、键冲突处理、自定义Map... 目录一、基础用法回顾二、处理键冲突三、自定义 Map 实现类型四、处理 null 值五、复杂值类型转换六、处理