c - OBS - 录制屏幕时捕获帧
问题描述
我想记录我的整个屏幕并在 OBS 中动态创建每一帧的图像。我想记录我通过 Web 套接字接收的第三方流,并希望在运行时提取流的每一帧。
我已经对源代码(https://github.com/obsproject/obs-studio)有了一个全面的了解,但仍然不知道应该在哪里修改代码。
在 graphics.c 文件中有这个 gs_draw_sprite() 方法,它获取持有帧的精灵并相应地渲染它:
void gs_draw_sprite(gs_texture_t *tex, uint32_t flip, uint32_t width,
uint32_t height)
{
graphics_t *graphics = thread_graphics;
float fcx, fcy;
struct gs_vb_data *data;
fcx = width ? (float)width : (float)gs_texture_get_width(tex);
fcy = height ? (float)height : (float)gs_texture_get_height(tex);
data = gs_vertexbuffer_get_data(graphics->sprite_buffer);
if (tex && gs_texture_is_rect(tex))
build_sprite_rect(data, tex, fcx, fcy, flip);
else
build_sprite_norm(data, fcx, fcy, flip);
gs_vertexbuffer_flush(graphics->sprite_buffer);
gs_load_vertexbuffer(graphics->sprite_buffer);
gs_load_indexbuffer(NULL);
gs_draw(GS_TRISTRIP, 0, 0);
}
有没有办法把这个精灵渲染成位图?不幸的是,我在 C 方面不是很有经验。
解决方案
推荐阅读
- bash - 将终端拆分为不同的选项卡
- jenkins - 如何获取与 jira 修复版本相关的詹金斯构建 url?
- html - 悬停时更改颜色无法正常工作
- c++ - 当我声明类时它总是显示构建失败
- windows - 在 Windows 上加载设备驱动程序的过程是什么?
- python-3.x - 为什么这个循环重复每个字符串多次?
- python - 使用 os.path.basename 返回模式和编码以及文件名提取文件名
- json - 如何使用 Postgres 在根级别更新多个 json 字段?
- r - 用 geom_point / ggmap / plot 在海岸线附近绘制点
- dart - 在地图中返回结果给键,需要访问值