【Python】OBS 脚本

news2024/9/21 2:43:52

文章目录

  • 一、指定python解释器和脚本
  • 二、特殊函数名
  • 三、obspython API
  • 四、 实际应用示例(mkv转mp4封装后自动删除mkv)

OBS Studio是一个流行的开源软件,用于视频录制直播。除了其内置功能外,OBS还支持通过Python脚本(以及lua脚本)进行扩展,允许用户自定义和自动化各种任务。

OBS的Python脚本功能允许用户访问和修改OBS的许多方面,从而实现个性化的自动化操作。无论是简单的录制任务自动化,还是复杂的场景切换逻辑,Python脚本都能提供强大的支持。

一、指定python解释器和脚本

工具—脚本,这里即可设置。

首先指定一个python解释器路径,比如我用的是anaconda的python:
在这里插入图片描述

然后再选择你的python脚本即可。

obs提供的python api名称为:obspython,直接import即可,不用你自己安装的(当然也安装不了)。

二、特殊函数名

在OBS中,Python脚本可以使用obs模块来与OBS进行交互。通常,这些脚本会定义一些特殊的函数名,这些函数会在特定的事件发生时被OBS自动调用。

以下是一些常见的特殊函数名及其作用:

  1. script_description(): 返回一个字符串,描述脚本的功能或用途。

  2. script_defaults(settings): 用于设置脚本的默认配置。

  3. script_properties(): 定义和返回脚本的设置界面(属性窗口)中显示的控件和选项。

  4. script_update(settings): 在脚本的设置被修改后调用,用于更新脚本的行为或配置。

  5. script_load(settings): 当脚本被加载到OBS中时调用。这是初始化脚本的好地方。

  6. script_unload(): 在脚本从OBS中卸载时调用,用于清理资源或执行其他卸载操作。

这些函数是OBS脚本的核心,用于管理脚本的生命周期和配置。

示例:

(1)script_description

此函数返回一个字符串,描述脚本的功能和用途。这个描述将在OBS的脚本列表中显示。

def script_description():
    return "这个脚本什么也没做。"

obs 输出:
在这里插入图片描述

(2) script_properties

此函数返回一个属性集,定义了用户可以在OBS界面中修改的设置。这些设置可以是文本框、滑块、复选框等。

def script_properties():
    props = obs.obs_properties_create()
    obs.obs_properties_add_text(props, "output_path", "输出目录", obs.OBS_TEXT_DEFAULT)
    return props

(3) script_load

当脚本被OBS加载时,script_load函数被调用。这是执行初始化设置和注册回调的好地方。

def script_load(settings):
    # 注册录制停止事件的回调
    obs.obs_frontend_add_event_callback(on_recording_stopped)

当你在 OBS 的脚本窗口添加脚本,重新载入脚本,恢复默认时,或 OBS 启动后,Python 脚本就会被加载。当你在 OBS 的脚本窗口移除脚本,重新载入脚本时,恢复默认之前,或 OBS 关闭时,Python 脚本就会被卸载

(4) script_unload

当脚本被卸载时,script_unload函数被调用。这用于清理资源,如移除事件回调。

def script_unload():
    obs

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

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

相关文章

JS模块化总结 | CommonJS、ES6

BV13W42197jR 个人笔记 目录 JS模块化基础知识1. 概述1.1 什么是模块化1.2 为什么需要模块化? 2 模块化规范3 导入&导出4 CommonJS规范4.1 初步体验4.2 导出数据4.3 导入数据4.4 扩展理解4.5 浏览器端运行 5 ES6模块化规范5.1 初步体验5.2 Node中运行ES65.3 导出数据①分别…

C++ 设计模式——工厂方法模式

工厂方法模式 工厂方法模式主要组成部分代码实现工厂方法模式模式的 UML 图工厂方法模式 UML 图解析优点和缺点适用场景 工厂方法模式 工厂方法模式是一种创建型设计模式,它通过定义一个接口用于创建对象,但由子类决定实例化哪个类。与简单工厂模式不同…

笔记 5 : 彭老师课本第 5 章 , 开始代码编程

(49)大纲: (50) 系统: (51) 学习路线: (52)该款 soc 的内存布局: 细化的 SFR 地址空间 : (53) soc…

IMX8M核心板偶发系统启动失败排查实录

一. 基本情况介绍 1. 硬件方案组成 产品中采用的是IMX8M核心板的方案,如图1所示是产品的硬件系统整体组成示意图。 图1 产品硬件组成框图 2. 问题描述 今年5月份有一台设备出现系统偶发启动失败,uboot阶段都无法通过,表面现象是显示屏黑屏…

Android持久化技术—SharedPreferences存储

文章目录 Android持久化技术—SharedPreferences存储将数据存储到SharedPreferences中Context类中的getSharedPreferences()方法Activity类中的getPreferences()方法PreferenceManager类中的getDefaultSharedPreferences()方法 从SharedPreferences中读取数据 Android持久化技术…

【自动驾驶】ROS远程节点的分布式通信

目录 固定IP的设置将IP地址改成手动配置文件修改配置主从机的~/.bashrc 文件配置主机的 IP 地址配置从机IP ROS是一个分布式计算环境。一个运行中的ROS系统可以包含分布在多台计算机上多个节点。根据系统的配置方式,任何节点可能随时需要与任何其他节点进行通信。 …

XSS靶场————XSS.pwnfunction

目录 第一关:Ma Spaghet! 第二关:Jefff 第三关:Ugandan Knuckles​编辑 第四关:Ricardo Milos ​编辑 第五关:Ah Thats Hawt​编辑 第六关:Ligma 第七关:Mafia​编辑 第八关&#xff1a…

交易系统JVM内存优化

背景 新交易系统上线以后,业务指标(成单率)和系统指标(CPU、QPS、JVM内存)是我们重点关注的指标。 CPU较高:可以通过Arthas等工具查看繁忙线程的堆栈信息,定位具体的代码,具体分析…

谷歌浏览器字体模糊不清怎么办

许多小伙伴在使用谷歌浏览器时,可能都遇见过字体模糊不清的情况,这将对我们的浏览体验大打折扣。为了解决这以问题,本文将为大家带来谷歌浏览器字体模糊不清的解决方法,帮助你享受到更清晰舒适的阅读环境。(本文由chro…

聚星文社AI工具官方

聚星文社是一键AI推文生成工具超强功能极速版介绍聚星文社AI工具官方https://docs.qq.com/doc/DRU1vcUZlanBKR2xy 同时集成原创和反推搬运功能 并可一键切换MJ或SD进行批量出库 一键自动智能分镜或手动快速分镜 精准排布镜头功能全预设 超简化流程 3秒即可完成参数配置全网最全…

Java 并发(五)—— 线程池

线程池核心参数?(核心线程数、最大线程数、任务队列)线程池构造方法中除了保存参数以外还要做什么事?(设置线程工厂、任务拒绝策略)提交任务时线程池要做什么?(任务执行机制&#xf…

Golang Map 深度剖析:原理、实践与面试要点

嘿,小伙伴们!我是 k 哥。今天,咱们来聊聊 Map 。 在 Go 语言这个神奇的世界里,Map 这个有点神秘的数据结构一直都是开发者们特别关注的。 你是不是在用 Map 的时候,对它里面咋工作的感到好奇?是不是碰到复杂操作的时候,特别想弄明白它背后的原理?别着急,今天这篇文章…

Java流程控制06:嵌套for循环

本节教学视频链接:https://www.bilibili.com/video/BV12J41137hu?p41&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5https://www.bilibili.com/video/BV12J41137hu?p41&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 在Java中,‌嵌套for循环是指将…

使用三菱PLC源码进行PLC读取写入操作

安装 MX Component 。 我的安装地址在: 打开 utl 文件夹下的 Communication Settings Utility 执行。 配置PLC 添加当前需要配置的PLC 注意 logical station Namber 就是程序里需要对接的逻辑站点编号 5.配置选择对应的COM操作选择对应的cpu型型号,…

Ah That‘s Hawt

目录 一、题目 二、思路 三、payload 3.1 方案一 3.1 方案二 四、思考与总结 一、题目 <!-- Challenge --> <h2 id"will"></h2> <script>smith (new URL(location).searchParams.get(markassbrownlee) || "Ah Thats Hawt")sm…

甄选系列“论软件开发过程RUP及其应用”,软考高级论文,系统架构设计师论文

论文真题 RUP(Rational Unified Process)是IBM公司的一款软件开发过程产品,它提出了一整套以UML为基础的开发准则,用以指导软件开发人员以UML为基础进行软件开发。RUP汲取了各种面向对象分析与设计方法的精华,提供了一个普遍的软件过程框架,可以适应不同的软件系统、应用…

ant -design 框架以及具体调试

1.介绍 Ant-Design-Vue 是一个基于 Ant Design 设计体系的 Vue 实现。Ant Design 是由阿里巴巴开源的一个企业级 UI 设计语言&#xff0c;旨在提升用户体验和开发效率。Ant-Design-Vue 将 Ant Design 的设计理念和组件库带入了 Vue 生态系统&#xff0c;使得开发者能够在 Vue …

RabbitMQ集群 - 普通集群搭建、宕机情况

文章目录 RabbitMQ 普通集群概述集群搭建数据准备启动容器宕机情况 RabbitMQ 普通集群 概述 1&#xff09;普通模式中所有节点没有主从之分&#xff0c;所有节点的元数据&#xff08;交换机、队列、绑定等&#xff09;都是一致的. 例如只要有任意一个节点上面 新增交换机&…

迈出Python自动化测试的第一步

一、思考❓❔ 1.什么是性能自动化测试? 性能 系统负载能力超负荷运行下的稳定性系统瓶颈 自动化测试 使用程序代替手工提升测试效率 性能自动化 使用代码模拟大批量用户让用户并发请求多页面多用户并发请求采集参数&#xff0c;统计系统负载能力生成报告 2.Python中的性能自…

C++竞赛初阶L1-12-第五单元-while(27~28课)531: T456440 含 k 个 3 的数

题目内容 输入两个正整数 m 和 k&#xff0c;其中 1<m≤1015&#xff0c;1<k≤15 &#xff0c;判断 m 是否恰好含有 k 个 3&#xff0c;如果满足条件&#xff0c;则输出 YES&#xff0c;否则&#xff0c;输出 NO。 输入格式 输入一行&#xff0c;为两个整数 m,k&#x…