首页 > 软件开发 > vlc二次开发

快速发布【软件开发】相关需求,专业顾问为您服务 快速发布

用此手机号发布,您还可以点击 更换

发布需求
请输入正确的手机号
请输入正确的验证码

您是不是要找:

  • 专家问诊,提供专业建议
  • 急速响应,体验省心
  • 根据需求灵活定制解决方案

vlc二次开发

标签:vlc二次开发 2017-7-24 作者:唐明霞


        下面是小编为大家收集的vlc二次开发相关内容,供大家参考。


  首先:在vlc的网站上下载含有sdk的vlc文件目录,由于vlc不断的升级,可能版本以及sdk接口都会发生一下变化,不过思想原理是一样的:


  vlc首先要初始化一个实例:


  定义变量:


  libvlc_exception_t m_libvlc_ex;                 ///< vlc处理异常句柄

  libvlc_instance_t* m_plibvlc_Instance;          ///< libvlc 实例对象

  libvlc_media_t*    m_plibvlc_media;             ///< media对象

  libvlc_media_player_t* m_plibvlc_media_player;  ///< vlc播放器对象


  定义输入5个参数:


  char *vlc_argv[5] = {'\0'};

  char szCach[125];

  sprintf(szCach, "--rtsp-caching=%d", nRtspCachTime); // 缓冲时间

  vlc_argv[0] = "--ignore-config";

  vlc_argv[1] = "--vout=direct3d";

  vlc_argv[2] = "--aspect-ratio=5:4";

  vlc_argv[3] = szCach;

  vlc_argv[4] = strFullArgc;


  其中最后一个参数如何得到的呢,这就是我们要创建一个播放器的主要参数:


  如果你仅仅是播放参数,则该参数可以置为空,但是如果想保存收到的rtsp视频流,则需要初始化该参数为下面的方式,其中strSavePath为保存路径


  sprintf(strFullArgc, "--sout=#duplicate{dst=std{acess=file,mux=ts,dst=%s}}", strSavePath);


  然后把参数赋值为 vlc_argv[4] = strFullArgc;


  使用上述参数初始化播放器:


  // 初始化异常处理变量

  libvlc_exception_init(&m_libvlc_ex);


  // 创建并初始化一个libvlc实例

  m_plibvlc_Instance = libvlc_new(5, vlc_argv, &m_libvlc_ex);


  // 根据给定的媒体文件(链接地址或者文件地址)创建一个media对象,

  m_plibvlc_media = libvlc_media_new(m_plibvlc_Instance, m_pStrUrl, &m_libvlc_ex);


  // 根据给定的媒体对象创建一个播放器对象

  m_plibvlc_media_player = libvlc_media_player_new_from_media(m_plibvlc_media, &m_libvlc_ex);


  设置播放窗口:


  libvlc_media_player_set_hwnd(m_plibvlc_media_player, (void*)hwnd, &m_libvlc_ex);


  其中的hwnd为窗口句柄:


  下面就可以播放了:

  libvlc_media_player_play(m_plibvlc_media_player, &m_libvlc_ex);


  停止播放:


  // 停止播放对象

  libvlc_media_player_stop(m_plibvlc_media_player, &m_libvlc_ex);


最新文章推荐

软件开发暂无最新文章查看全部推荐文章>

推荐人才