Obs-Studio-Node框架结构

obs-studio-node是一个开源项目:https://github.com/stream-labs/obs-studio-node.git

该项目在obs基础上用C++封装了一套可供前端js使用的框架。

obs-studio-node中两个关键的工程:obs-studio-server和obs-studio-client

obs-studio-server是一个单独的进程,提供了对obs更高层次的封装,包括设备状态和使用情况的记录。外部模块可以通过RPC的方式来调用。

Obs-studio-client 是一个dll工程,该dll可以供node进行调用,底层通过RPC与obs-studio-server进行交互。Client中的接口与server中的接口一一对应。

 

obs-studio-node将obs底层接口归类,封装成16个大类,每个大类下有对应的抽象方法。

具体封装接口的意义还在分析。

 

Server(Obs64.exe)包装了obs的接口,管理各模块创建出来的source对象

Input \Filter \Transition\Scene创建的对象都由Source模块管理,并返回对应的id,后续其他模块对该source的修改都是通过该id进行的。

Source模块提供Update\Remove\Release来都source对象进行管理

 

Client(obs-studio-node.node)

js_ipc:管理与主进程的的通信接口

nodeobs_api:管理obs的初始化和设置接口

nodeobs_autoconfig:自动配置?

nodeobs_display:管理obs与现实相关的接口

nodeobs_service:管理音视频推流,编解码接口

nodeobs_settings:管理设置

绘制相关:

Global:管理全局接口

Source:管理所有的创建的source

Input: 管理输入设备

Scene: 显示图层

SceneItem: 图层item管理

 

你可能感兴趣的:(C++,OBS)