Windows平台vlc-qt的编译和使用


最近在研究qt(qml)平台上视频播视播放,其实本身在qml上MediaPlayer就可以很好的支持视频播放了,可以支持本地和网络视频流,唯一不方便的是需要安装解码器(如:LAVFilters)。因为前一种太简单了,本文主要讲另外一种基于vlc-qt的视频播放解决方案。

vlc-qt是国外的大神对vlc的封装,支持widgets和qml的应用。搭建vlc-qt的开发环境主要有三个步奏,下载开发库,编译vlc-qt,然后就是部署和使用vlc-qt。废话不说了,开撸!!!

说明:如果是基于widgets方式开发的,那么恭喜你直接看第三部就可以;如果是使用qml的,我们还是老老实实的编译一下vlc-qt的源码吧,因为大神给的release版的根本没有编译qml的插件。

1    vlc开发库下载

vlc开发库,我直接下载了绿色版带SDK的(win32),注意一定要选择2.2.0以后的版本,因为我选择的是vlc-qt(v1.1.1版本),这个版本不支持以前的版本了,我这里选择了2.2.6版本的vlc;另外就是要.7z 的压缩包,因为只有这个里面有SDK。下载链接如下:

http://download.videolan.org/vlc/2.2.6/win32/vlc-2.2.6-win32.7z

下载好安装包后,解压后我们所要的东西就是这两个文件夹里的和两个dll文件。

Windows平台vlc-qt的编译和使用

把plugins和两个dll文件复制到qt安装目录下的bin目录中(例如:D:\Qt\Qt5.7.1\5.7\msvc2015\bin)

把sdk/include/vlc目录复制到qt安装目录下的include目录中(例如:D:\Qt\Qt5.7.1\5.7\msvc2015\include)

把sdk/lib下面的几个lib文件复制到qt安装目录下面的lib目录中(例如:D:\Qt\Qt5.7.1\5.7\msvc2015\lib)

注意这里我们要设置一个环境变量,就是我们plugins文件夹的位置,例如:

VLC_PLUGIN_PATH   D:/Qt/Qt5.7.1/5.7/msvc2015/bin/plugins

2    vlc-qt编译

vlc-qt源码的地址:https://github.com/vlc-qt/vlc-qt

下载vlc-qt的源码,这里你要安装git了,如果不知道怎么安装,请找度娘。

在git命令行下输入:

  git clone git://github.com/vlc-qt/vlc-qt.git
  git submodule init
  git submodule update

得到源码后,就是最重要的编译了。编译请参考:https://github.com/vlc-qt/vlc-qt/blob/master/BUILDING.md 。但是这个描述的太简单了,实际的工作远比这个复杂。

编译之前我们要安装cmake,版本号要求3.0.2以上。我下载的是cmake-3.10.0-rc2-win64-x64.msi,安装好cmake,这里我们还要设置一个环境变量,不find_package的时候会找不到Qt5的包。注意: CMAKE_PREFIX_PATH 应该指到包含Bin及lib的一级,例如:

CMAKE_PREFIX_PATH   D:\Qt\Qt5.7.1\5.7\msvc2015

然后我们利用cmake来生成编译代码,在下载的vlc-qt代码目录中新建一个build目录。

方便起见,我们直接打开cmake的gui,选择源码目录和编译的build目录,点击configure,开始生成代码。

这里我选择了生成Visual Studio 14 2015的工程,如下图:

Windows平台vlc-qt的编译和使用Windows平台vlc-qt的编译和使用

成功会显示Configuring done,然后点击Generate。但是,这一步一般都会出现很多问题,这时候我们就要根据提示的问题去修改cmakelist.txt文件。按照前面的方法做下来,应该只用修改红色框内的内容,改成自己的qt版本:

具体文件vlc-qt\config\ Dependencies.cmake

Windows平台vlc-qt的编译和使用

成功后,就开始编译吧,在Visual Studio中设置好dll和lib的生成路径,开始编译吧。

编译Core的时候会遇到问题,vlc.lib已损坏或者vlccore.lib已损坏,这时候需要在链接器中把附加依赖项改为:

Windows平台vlc-qt的编译和使用

另外,在链接器—命令行,其他选项中添加 /SAFESEH:NO

Windows平台vlc-qt的编译和使用

最困难的已经过去了,现在只用调整下一些附加依赖项的位置,就可以把整个解决方案全部编译通过了。为了更好的使用,我区分了Debug的版本和Release的版本,这个读者可以自行设置了。

大功告成!这时候,我们可以看到以下文件了,这就是大神没有提供给我们的qml的插件了,我们只要安装了这些插件就可以在qml中使用了。

vlc-qt\build\src\plugins\VLCQt\Debug\VLCQtd.dll

vlc-qt\build\src\plugins\VLCQt\Debug\VLCQtd.lib

vlc-qt\build\src\plugins\VLCQt\Release\VLCQt.dll

vlc-qt\build\src\plugins\VLCQt\Release\VLCQt.lib

3    vlc-qt使用

使用就非常简单了,只是我们需要做一些工作配置工作。

拷贝vlc-qt\build\include下的三个目录放到qt安装目录\include下面,要检查这三个目录啊,有可能目录是空的,这时候就要从src中拷贝出来啊。

Windows平台vlc-qt的编译和使用

拷贝如下dll文件到qt安装目录\bin

Windows平台vlc-qt的编译和使用

拷贝如下lib文件到qt安装目录\lib

Windows平台vlc-qt的编译和使用

创建VLCQt文件夹,拷贝如下文件到此文件夹,并将此文件夹拷贝到qt安装目录\lib\cmake

Windows平台vlc-qt的编译和使用

创建VLCQtCore文件夹,拷贝如下文件到此文件夹,并将此文件夹拷贝到qt安装目录\lib\cmake

Windows平台vlc-qt的编译和使用

创建VLCQtQml文件夹,拷贝如下文件到此文件夹,并将此文件夹拷贝到qt安装目录\lib\cmake

Windows平台vlc-qt的编译和使用

创建VLCQtWidgets文件夹,拷贝如下文件到此文件夹,并将此文件夹拷贝到qt安装目录\lib\cmake

Windows平台vlc-qt的编译和使用

在vlc-qt\build\package下可以找到对应的一些文件,剩下的可以通过搜索找到,另外就是VLCQtxxxTargets.cmake应该有重复的文件,用package下面就可以。

在Qt安装目录\qml下创建一个VLCQt目录,并将如下文件拷贝进去。

Windows平台vlc-qt的编译和使用

qmldir可以在vlc-qt\build\src\plugins\VLCQt目录下找到。

这样开发环境就准备好了。Qml的例子可以参考https://github.com/vlc-qt/examples/tree/master/qml-player

使用qtcreator,pro文件要加入如下命令:

LIBS+=-lVLCQtCore-lVLCQtQml

测试效果如下图,视频为我女儿,希望她健康快乐。

Windows平台vlc-qt的编译和使用

资源下载:

http://download.csdn.net/download/wj2itp08/10044679