Using libVLC as a video decoder

I'm attempting to use libVLC as a video decoder for a motion detection project. Previously I was using ffmpeg libraries, but some issues with Matroska files brought me here. Along with playing video back at the correct rate, I also want to be able to get one frame after another at the fastest rate my system can handle, as once the user sets up some parameters, I want the motion detection algorithm to run through the video as quickly as it can. My libVLC setup code looks like this (error handling and minor details omitted for brevity): const char* vlc_argv[] = { "--no-audio", /* skip any audio track */ }; libvlc_instance_t* inst = libvlc_new(sizeof(vlc_argv) / sizeof(*vlc_argv), vlc_argv); auto media = libvlc_media_new_path (inst, filename.c_str()); player = libvlc_media_player_new_from_media(media); libvlc_media_release(media); // Needed to initialize the player ? libvlc_media_player_play(player); libvlc_media_player_pause(player); fps = libvlc_media_player_get_fps(player); length = libvlc_media_player_get_length(player); width = libvlc_video_get_width(player); height = libvlc_video_get_height(player); // TODO: Add libvlc_video_set_callbacks to set up callbacks to render to memory buffer However, I am left with the following questions: 1. Is there a more straightforward way to initialize the media player without starting playback besides calling `libvlc_media_player_play` then `libvlc_media_player_pause`? 2. All of the `get` functions (`fps, length, width, height`) all return zero. Do I need to do something like read the first frame to get these values, and if so, how am I supposed to know how large my decoded frame buffer must be?
Hi, just wondering, on which OS are you?

以上就是Using libVLC as a video decoder的详细内容,更多请关注web前端其它相关文章!

赞(0) 打赏
未经允许不得转载:web前端首页 » CSS3 答疑

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

前端开发相关广告投放 更专业 更精准