基于vlc的sdk二次开发播放器开发
2011-05-13 10:16
901 查看
转载自:http://www.yanfaw.com/technology/201105/12/203.html
最近一直想总结一下vlc的二次开发,因为项目前期采用的方案是使用vlc提供的windows下sdk,因此打算利用该sdk,实现一个播放器功能,所以尝试了一下vlc的二次开发,发现其实也很简单,vlc的sdk已经封装了大部分的实现,我们知道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;
使用上述参数初始化播放器:
转载自:http://www.yanfaw.com/technology/201105/12/203.html
// 初始化异常处理变量
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);
转载自:http://www.yanfaw.com/technology/201105/12/203.html
记得要把vlc的核心动态库libvlc.dll,和libvlccore.dll放到应用程序中
同时要包含插件目录。
最近一直想总结一下vlc的二次开发,因为项目前期采用的方案是使用vlc提供的windows下sdk,因此打算利用该sdk,实现一个播放器功能,所以尝试了一下vlc的二次开发,发现其实也很简单,vlc的sdk已经封装了大部分的实现,我们知道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;
使用上述参数初始化播放器:
转载自:http://www.yanfaw.com/technology/201105/12/203.html
// 初始化异常处理变量
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);
转载自:http://www.yanfaw.com/technology/201105/12/203.html
记得要把vlc的核心动态库libvlc.dll,和libvlccore.dll放到应用程序中
同时要包含插件目录。
相关文章推荐
- 基于VLC的播放器开发
- 基于VLC的播放器开发
- 基于VLC的播放器开发
- 基于VLC的播放器开发
- 基于vlc的unity3d vr视频播放器开发,360度全景视频
- [置顶] 搬砖之路----MusicPlayer 一个基于Vlc(2.0+)开发的android音乐播放器--浅析在android开发过程中播放器选择之路!
- 基于vlc的unity3d vr视频播放器开发,简述
- 基于VLC的播放器开发
- 基于vlc的android视频播放器开发笔录
- 基于vlc的播放器,qt做界面,遇到的问题
- 用C/C++开发基于VLC SDK的视频播放器 开发环境搭建
- 使用vlc进行二次开发做自己的播放器
- 用C/C++开发基于VLC SDK的视频播放器
- 基于 LIBVLC sdk 开发
- 用C/C++开发基于VLC SDK的视频播放器
- vlc二次开发之开发自己的播放器sdk二次开发
- 用C/C++开发基于VLC SDK的视频播放器
- 亲测可用的android基于vlc开发的音视频播放库。
- 用C/C++开发基于VLC SDK的视频播放器