OBS-录制屏幕时捕获帧

时间:2019-08-14 08:42:49

标签: 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语言不是很了解。

0 个答案:

没有答案