文章目录
- 一、指定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自动调用。
以下是一些常见的特殊函数名及其作用:
-
script_description()
: 返回一个字符串,描述脚本的功能或用途。 -
script_defaults(settings)
: 用于设置脚本的默认配置。 -
script_properties()
: 定义和返回脚本的设置界面(属性窗口)中显示的控件和选项。 -
script_update(settings)
: 在脚本的设置被修改后调用,用于更新脚本的行为或配置。 -
script_load(settings)
: 当脚本被加载到OBS中时调用。这是初始化脚本的好地方。 -
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