当前位置: 首页 > news >正文

使用LIBOBS: 采集桌面,保存图片

OBS Studio是个很全面的采集和直播开源软件,并且通过Libobs支持二次开发。不过缺点是文档太少,代码的例子也少,只有一个test。而项目本身功能很全,但代码量比较大,想全面了解需要花费不少时间。最近花了点时间编译出来,通过debug OBS Studio,大致掌握了一些开发要点,写了一个小demo。

先说编译,源码是基于cmake的,依赖项又非常多。按官方教程一次编译通过不太可能。

提示几点:

1 设置https代理,能正常访问github。

2 windows下编译器使用vs2022。最初用2019碰到的问题,在2022下就没发生。

3 安装vcpkg,当cmake提示缺少库的时候,直接vcpkg install,节省很多时间。同样,vcpkg想顺利使用,也一定要有个代理。不过大多数在.deps里都能找的到。下面是我的cmake一个截图:

image

4 然后打开工程,全部编译,再install。

5 开始调试 obs studio, 在项目列表找到obs-studio,右键选:设置为启动项

image

然后 F5就可以了:

image

程序入口在OBSApp.cpp里。

从bool OBSApp::OBSInit()入手,开始大致看一下架构流程。然后,如果以前没接触过OBS的话,可以使用豆包或千问给你解释一下框架,然后再看代码。如果有一定经验,就按着以下几个API的顺序,查找相关代码,加断点,调试:

base_set_log_handler(do_log, nullptr);

obs_initialized

obs_startup

obs_add_module_path

obs_load_all_modules

obs_post_load_modules

obs_reset_video

obs_display_create

obs_source_create

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!

//Without this sentence, the screen will be black

obs_source_inc_showing(desktop_source);

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!

obs_scene_create

obs_display_add_draw_callback

上面是采集屏幕,其他采集窗口、摄像头等流程都一样的。

然后,在采集过程中需要保存成图的话,直接使用obs-studio里的一段代码就行:

OBSBasic ob;

http://www.jsqmd.com/news/106077/

相关文章:

  • 基于VUE的企业协同管理系统 [VUE]-计算机毕业设计源码+LW文档
  • 扒开Google的底裤!我花了72小时,硬刚gemini-cli源码,终于搞懂了AI Agent的核心!
  • 基于S7-1200的食堂饮用水水质净化控制系统设计
  • 沉浸式视觉小说体验:TouchGal如何重新定义Galgame社区
  • MindSpore框架下LSUN数据集高效处理实战指南
  • Locale Remulator 终极使用指南:轻松实现系统区域模拟
  • GLAD:带有反射壁的空心波导
  • linpack测试HPL.dat配置文件
  • Linux系统终极Notion安装指南:快速搭建原生桌面应用
  • 【高阶运维必修课】:Docker Offload资源释放不彻底的6大根源
  • 万字长文!AI Agent九大设计模式全景图(上),从ReAct到协作,收藏这篇就够了!
  • FastDepth终极指南:嵌入式实时单目深度估计完整教程
  • 基于VUE的企业人事管理系统 [VUE]-计算机毕业设计源码+LW文档
  • 全国铁路货运营业站示意图:专业货运规划终极指南
  • 计算机408考研冲刺阶段高效提分策略:从诊断到实战的全方位指南
  • 本机进程间通信的一种方式:UDS入门篇一
  • 终极视频修复指南:简单三步拯救损坏文件的完整教程
  • 英文文献的高效检索与阅读策略研究
  • 吉时利2430 keithley2430数字源表 技术
  • GroundingDINO目标检测终极指南:SwinT与SwinB深度解析
  • OpCore Simplify:告别黑苹果配置噩梦的终极解决方案
  • 3DS游戏PC畅玩终极方案:Citra模拟器快速上手完全手册
  • 重新定义终端边界:现代开发效率的探索之旅
  • 文献查询技巧与方法:高效获取学术资源的实用指南
  • 【单片机毕业设计】【dz-973】基于单片机的的艾灸治疗仪设计
  • 为什么90%的量子开发者忽略VSCode环境备份?真相令人震惊
  • FunASR采样率配置终极指南:从技术侦探视角解析语音识别谜题
  • 5分钟精通YOLOv9模型评估:从零基础到实战高手的完整指南
  • Citra模拟器终极解决方案:5步快速修复常见问题指南
  • 5分钟掌握Cocos事件优先级:告别交互混乱,实现精准响应控制