最近做了一个分屏软件,开如使用的FFMPEG进行开发,开发完成后,经测试发现视频卡顿得很,我是将一帧帧视频用QImage的的方式在屏幕上画出来,可以这种效率太低了,无奈找不到好的办法解决,只能放弃寻找其它的出路,然后我了解到了VLC,在开发过程中,我发现,VLC的效率还可以,可是有一个弊端,那就是在切换视频时无法全屏化显示,本人的能力有限,不想耗费太多精力去做这些事情,我查阅资料,发现有一个国外大牛写了一个基于QT的VLC封装,而且评价极高。所以我走上了VLC -QT的开发之路。
一,下载
VLC-QT下载
通过官网:https://vlc-qt.tano.si/
一种是可以从官网上直接下载编译好的VLC-QT库使用,不过它有一些限制,它们提供的库都是使用QT5.6.1 + VLC2.2.4进行编译的,所以如果你的QT版本不是5.6.1,那么很遗憾的告诉你,直接用是不可能的了,那么我们只能自己进行编译了。自己编译的话,我们需要VLC-QT的源码,源码下载方式有两种。
1)源码包
一是使用GIT直接下载,使用GIT下载我们要先安装的GIT,安装哪个版本都无所谓,它只是个下载工作而已。
git软件下载地址:链接:https://pan.baidu.com/s/1H-6Jf6ytWmvgkeX9WR6pEg密码:2gp8
安装git后,打开gis的控制台:直接使用:git clone git://github.com/vlc-qt/vlc-qt.git 进行克隆,没有设置克隆目录的话,默认在“C:\ Users \你的用户名“下的VLC-QT目录。
另外你还可直接去GITHUB下载vlc-qt.zip源码包:https://github.com/vlc-qt/vlc-qt
2)VLC库
好了,源码包已经下载下来了,既然是vlc - qt,所以少不了vlc嘛,他要依赖vlc,官方是用vlc2.2.4,所以我用的是vlc2.2.4,应该用更高版本的也可以。不过在下载时要分清,是32位还是64位,我要生成32位的VLC-QT,所以我下载的是WIN32版本的库。
vlc下载地址:http://download.videolan.org/vlc/
3)CMake的
接下来我们需要下载并安装CMake的,它是用来生成项目工程的。
cmake下载地址:链接:https://pan.baidu.com/s/1E-6RQZ28uUE0ieQWohjncw 密码:p6ft
二,编译
1)部署VLC环境
在编译之前,我们需要部署一下VLC,解压VLC,在里面找到下图中红框框住的
把plugins和两个dll的文件复制到QT安装目录下的bin目录中(例如:D:\Qt\Qt5.9.3\5.9.3\msvc2015\bin)
把sdk/include/vlc目录复制到QT安装目录下的include目录中(例如:D:\Qt\Qt5.9.3\5.9.3\msvc2015\include)
把sdk/lib 下面的几个LIB文件复制到QT安装目录下面的lib目录中(例如:D:\Qt\Qt5.9.3\5.9.3\msvc2015\lib)
注意这里我们要设置一个环境变量,就是我们的插件文件夹的位置,例如:
VLC_PLUGIN_PATH D:/Qt/Qt5.9.3/5.9.3/msvc2015/bin/plugins
2)生成vs2015项目
生成VS2015项目,我们需要用到CMAKE,在CMake目录中打开cmake-gui.exe。并设置VLC-QT源码位置,及构建目录,然后点击“configure”,设置生成什么类型的工程,我这里是生成vs2015 32位的所以选择的是“Visual Studio 14 2015”,
运行结果为上图所示,然后我们要检查各个项配置,
1)makeinstall
这项表示VLC-QT的makeinstall的目录,我建议大家不要设置为系统盘下,最好改到其它盘下,因为在makeinstall时,会因为权限不够造成安装时不成功,所以我设置到了D盘目录下。(这是我在编译进总结出来的,不听我的话,等着初坑吧),
2)GIT中
GIT这一项可以不用填,没有多大用处,如果你装上了GIT,填上也没有关系,我还是填上了。
3)vlc
这三项是关于VLC库的配置,我们看到这里面LIBVLCCORE_LIBRARY和LIBVIC_LIBRARY的链接是不正确的,我们需要手动改一下,分别改成:libvlccore.lib和libvlc.lib
以上是大家需要注意的地方,其它的配置应试都不用更改。
3)Add Entry
在这里我们需要添加一个变量,可以方便大家在生成库的时候,如果是debug版的可以带d,不然的话,在生成debug和release时,不是不带d的库,会覆盖掉。
如下图所示,“Add Entry”,
名称:CMAKE_DEBUG_POSTFIX
类型:STRING
价值:d
说明:可以为空
好了设置好后,点击configure成功后,然后执行Generate生成VS2015工程。
以下是我的所有配置信息,大家可以参考一下。
3)修改cmake_install.cmake
这一个操作,是在我编译过程中发现的问题,这个问题会导致后面安装时不成功。
在构建目录下找到cmake_install.cmake文件然后以文本的形式打开。如下图红框所示,两个DLL的位置配置不对,我们要手动修改一下,改为bin目录下。
修改后
4)用VS2015打开工程
在建立目录上,点击VLC-Qt.sln文件打开工程
4)修改vs2015属性
分别修改Core,PluginQml,Qml,Widgets工程的属性>>调试/发布>>链接器>>命令行>>其它选项下填入/ SAFESEH:NO
这是关闭一种警告,如果不设置这项,在生成工程时,会将这类警告看成错误,进而造成项目生成不成功。在设置这个时,最好将调试和发行都设置一下如下。图所示。
好了,设置以上设置后,我们可以生成动态库了,直接在ALL_BUILD工程上右击生成,就可以生成动态库了,生成成功后再在“INSTALL”工程上右击生成,就可将库提取到安装目录里了,即在CMake的的时设置的那个目录。
如果你做到了以上我所说的,我可以恭喜你你已经成功了,然后就可以开发了,在工程中有几个测试工程,大家可以自己尝试一下。后续我会上使用VLC-QT的文章。
后知后觉,我记起了ffmpeg的也有QT的封装,叫做QTAV,后面有需要我再试试这个。