news 2026/6/15 16:28:01

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用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;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 19:55:10

6 款企业微信 SCRM 工具:功能特点与适用场景解析

📊 测评说明**本文基于公开资料和用户反馈,对市场上 6 款企业微信 SCRM 工具进行客观分析,旨在帮助读者了解各产品的功能特点和适用场景。【测评维度说明】功能完整性:核心功能覆盖程度及拓展能力操作便捷性:界面设计、…

作者头像 李华
网站建设 2026/6/14 17:26:12

Psi4量子化学计算:从入门到实战的完整指南

Psi4量子化学计算:从入门到实战的完整指南 【免费下载链接】psi4 Open-Source Quantum Chemistry – an electronic structure package in C driven by Python 项目地址: https://gitcode.com/gh_mirrors/ps/psi4 你是否曾经好奇化学家是如何预测分子的性质和…

作者头像 李华
网站建设 2026/6/13 8:53:45

EmotiVoice应用场景全解析:覆盖游戏、教育、媒体等领域

EmotiVoice应用场景全解析:覆盖游戏、教育、媒体等领域 在今天的数字世界里,语音不再只是信息传递的工具——它正在成为情感连接的桥梁。当我们与智能助手对话时,是否希望听到的是冰冷的机械音,还是一句带着关切语气的回应&#x…

作者头像 李华
网站建设 2026/6/14 21:43:21

突破性能瓶颈:3种高可用消息队列架构深度解析

突破性能瓶颈:3种高可用消息队列架构深度解析 【免费下载链接】watermill Building event-driven applications the easy way in Go. 项目地址: https://gitcode.com/GitHub_Trending/wa/watermill 在分布式系统架构中,消息可靠性是实现业务连续性…

作者头像 李华
网站建设 2026/6/15 7:13:39

Analog Diffusion模型深度解析:从技术原理到专业级胶片质感生成

Analog Diffusion模型深度解析:从技术原理到专业级胶片质感生成 【免费下载链接】Analog-Diffusion 项目地址: https://ai.gitcode.com/hf_mirrors/ai-gitcode/Analog-Diffusion 本文深入解析Analog Diffusion模型的技术架构与核心算法,通过&quo…

作者头像 李华
网站建设 2026/6/14 20:22:48

告别混乱数据:用Pyecharts Graph图3步构建清晰关系网络

告别混乱数据:用Pyecharts Graph图3步构建清晰关系网络 【免费下载链接】pyecharts 🎨 Python Echarts Plotting Library 项目地址: https://gitcode.com/gh_mirrors/py/pyecharts 你是否曾面对这样的困境:公司组织架构图错综复杂&…

作者头像 李华