没有obs_register_video_cb
时间: 2023-07-24 13:27:21 浏览: 87
如果你使用的是 libobs 的较早版本,可能没有 `obs_register_video_cb` 函数。在这种情况下,你可以使用以下方法进行视频数据回调:
1. 在初始化 libobs 后,创建一个视频输出(`obs_output_t`)对象,用于输出视频数据到你的应用程序中。
```c
obs_output_t *output = obs_output_create("adv_stream", NULL, NULL);
```
2. 设置视频输出对象的回调函数,libobs 将在每个视频帧到达时调用该函数,将视频帧数据传递给你的应用程序。
```c
obs_output_set_video_encoder(output, "libx264", NULL);
obs_output_set_video_callback(output, video_callback, NULL);
```
3. 在视频回调函数中,你可以将视频帧数据传递给你的应用程序进行处理。例如,你可以将视频帧显示在一个窗口中,或者对视频帧进行编码和保存等操作。
```c
static void video_callback(void *param, struct video_data *frame)
{
// 处理视频帧数据
...
}
```
需要注意的是,在使用 libobs 时,你需要先初始化 libobs,并创建一个场景和源等组件,然后才能开始捕获视频数据。同时,为了保证视频数据的正确性,你需要在视频回调函数中及时处理视频帧数据,避免出现数据丢失或延迟等问题。
阅读全文