使用libvlc_video_set_format_callbacks逐帧转码视频

时间:2013-04-22 12:35:09

标签: c++ libvlc transcoding

我正在尝试用C ++编写一个小程序,逐帧转码视频,我正在使用函数libvlc_video_set_callbacks和libvlc_video_set_format_callbacks来实现这一目标。

第一个函数运行正常,但我不确定如何实现libvlc_video_set_format_callbacks。

我试着用这种方式开始,但是它为'setup'给了我一个参数错误:

int setup(void* pUserData, char *chroma, unsigned int *width, unsigned int *height, unsigned int *pitches, unsigned int *lines)
    {
        (void) pUserData;
        return 1;
    }

libvlc_video_set_format_callbacks(mp, setup, cleanup);

接下来就是我真的不知道如何设置正确的视频格式属性。

你能帮我解决这个设置功能,或者至少指出一个展示如何实现它的例子,因为我找不到它? 你可以想象,我不是一个非常有经验的程序员,所以请耐心等待我;) 提前致谢

1 个答案:

答案 0 :(得分:0)

liblv_video_set_format_callbacks第二个参数的类型为libvlc_video_format_cb,它是以下typedef:

typedef unsigned(* libvlc_video_format_cb)(void **opaque, char *chroma, unsigned *width, unsigned *height, unsigned *pitches, unsigned *lines);

我们可以看到您与setup函数的两个不同之处:

  • 第一个参数的类型应为void**。你的是void*
  • 返回类型应为unsigned。你的是int

我不知道视频格式属性。因此,我无法给你任何指示。