VLC-Qt的编译与使用 windows10+VS2019+qt5.15

4 篇文章 0 订阅


最近要在程序中实现一个能够播放本地视频的内嵌播放器,试过用ffmpeg、QtAV来实现,不是播放的速度有问题,就是在播放FLV视频文件时无法调整进度,因此寄希望于VLC-Qt。下面是我在windows10 VS2019环境下编译VLC-Qt的详细步骤

准备工作

编译环境
windows10
VS2019
Qt 5.15.0
vlc-3.0.16
vlc-qt-1.2.0
cmake-3.19.8-win64-x64

下载源码包
我是用Git工具直接下载的,打开Git Bash,键入git clone git://github.com/vlc-qt/vlc-qt.git进行克隆,完成后源码默认被保存在C:\Users\xxx\vlc-qt路径下
在这里插入图片描述
打开VERSION文件可以看到所下载的vlc-qt的版本号,这里是1.2.0
在这里插入图片描述
也可以直接到github上下载源码包,下载地址:https://github.com/vlc-qt/vlc-qt

下载VLC库
下载地址:http://download.videolan.org/vlc/
这里我选择的是目前最新的3.0.16版本,根据需要选择要下载的是32位还是64位,我的目标是生成64位的vlc-qt,因此下载的是64位库。
在这里插入图片描述
下载cmake
cmake是用来生成编译代码的,可以到cmake官网进行下载,下载地址:https://cmake.org/download/
这里我下载的是cmake-3.19.8-win64-x64.zip
在这里插入图片描述

vlc-qt的编译

部署VLC环境
在这里插入图片描述
【说明】以下提到的Qt安装目录是我个人的安装目录,为C:\Qt\Qt5.15\5.15.0\msvc2019_64

  • 将plugins文件夹和libvlc.dll、libvlccore.dll复制到Qt安装目录下的bin目录中
  • 将sdk/include/vlc目录复制到Qt安装目录下的include目录中
  • 将sdk/lib下的所有.lib文件复制到Qt安装目录下的lib目录中
  • 打开我的电脑→属性→高级系统设置→环境变量→系统变量,新建一个变量名为VLC_PLUGIN_PATH,值为plugins目录所在路径的系统变量
    在这里插入图片描述
    生成vs2019项目
    到cmake的bin目录下打开cmake-gui.exe,进行配置
    在where is the source code处选择vlc-qt源码所在路径
    在where to build the binaries处选择vlc-qt编译文件要存放的路径(这个文件夹是临时建的)
    【注意】这里最好将编译目录应该建在源码路径下,以防在生成INSTALL项目时会有问题!!!
    在这里插入图片描述
    点击“Configure”,选择生成的工程的类型,这里我选择的是Visual Studio 16 2019,64位版本。
    在这里插入图片描述
    点击“Finish”,出现如下配置信息,进行检查
    在这里插入图片描述
    需要特别注意的有以下几个配置项
  • CMAKE_INSTALL_PREFIX:最终编译结果输出的路径,建议不要放在C盘,因为在makeinstall时,会因为权限不够造成安装时不成功,这里我将路径改为D:\Program Files\VLC-Qt
  • LIBVLCCORE_LIBRARY:将"vlccore.lib"改为"libvlccore.lib"
  • LIBVLC_LIBRARY:将"vlc.lib"改为"libvlc.lib"
  • 为了防止生成debug和release库时,不带d的库被覆盖掉,还需要增加一个名为CMAKE_DEBUG_POSTFIX的cmake环境变量,点击“Add Entry”,
    在这里插入图片描述

最终配置如下
在这里插入图片描述
点击“Configure”配置成功后,点击“Generate”生成VS2019工程。现在可以看到vlc-qt的编译目录下生成了很多文件与工程。
在这里插入图片描述
用文本方式打开cmake_install.cmake文件,找到下列语句,将include替换为bin,这才是正确的路径
在这里插入图片描述
用VS2019打VLC-Qt.sln,我要生成的是64位的Release库,所以这里需要对解决方案的配置和平台进行修改。看到左侧的工程目录,分别修改Core、PluginQml、Qml、Widgets的工程属性。
在这里插入图片描述
以Core项目为例,右键项目属性→配置属性→链接器→命令行,在其他选项中添加/SAFESEH:NO,其他项目也是进行相同的操作。
在这里插入图片描述
完成以上设置后,在ALL_BUILD工程上右击生成,此时出现报错
在这里插入图片描述
查看错误列表
在这里插入图片描述
问题一: “libvlc_media_read_cb”: 未声明的标识符
解决方法:在vlc.h 文件中 添加 typedef __int64 ssize_t; 即可解决此问题
在这里插入图片描述
解决这个问题后,重新生成,前4条错误信息都消失了。

问题二:“poll”: 找不到标识符
解决方法:双击错误信息,定位到poll代码区,会看到一个poll的宏定义,需要把这个宏定义剪贴到 poll代码区的上方。
在这里插入图片描述
修改后
在这里插入图片描述
解决完这个问题后,重新生成项目,不再报错。
在这里插入图片描述
其它可能遇到的问题可以参考这位博主整理的
感谢大佬对错误及其解决方法进行详细的记录,让我少走不少弯路 OTL

ALL_BUILD项目生成成功后,生成INSTALL项目,到这一步又遇到MSB307 命令"setlocal错误
在这里插入图片描述
查阅资料,基本上都是介绍这几种方法

  • 尝试在进行cmake配置时,将build目录创建在源码目录下,而不是源码目录之外,然后重新配置、生成,但这个方法对我遇到的问题无效。
  • 用管理员身份运行VS2019,重新编译,这个方法依然无效
  • 我原本就是编译的release版本,所以改用release编译这个方法也无效
  • INSTALL项目属性→配置属性→生成事件→生成后事件→命令行,给cmake.exe路径加上双引号,无效

最后,在一篇博客的评论中找到解决我问题的方法:INSTALL项目属性→配置属性→生成事件→生成后事件,将“在生成中使用”改为“否”
在这里插入图片描述
清理项目并重新生成,成功!!!
在这里插入图片描述
现在就可将库提取到在CMake中设置的安装目录中去了
在这里插入图片描述

vlc-qt的使用

得到我们需要的库文件之后,下一步就是如何在Qt中使用它们。

环境部署

【说明】以下提到的Qt安装目录是我个人的安装目录,为C:\Qt\Qt5.15\5.15.0\msvc2019_64

  • 将bin目录下的所有dll文件拷贝到Qt安装目录的bin目录下
  • 将include目录下的三个文件夹VLCQtCore、VLCQtQml、VLCQtWidgets拷贝到Qt安装目录的include目录下
  • 将lib目录下cmake文件夹中的四个文件夹VLCQt、VLCQtCore、VLCQtQml、VLCQtWidgets拷贝到Qt安装目录的lib/cmake目录下
  • 将lib目录下所有的lib文件拷贝到Qt安装目录的lib目录下
  • 将qml目录下的文件夹VLCQt拷贝到Qt安装目录的qml目录下

项目中使用

下面我将用vlc-qt官方提供的示例来测试编译好的库是否能正常使用,点此自取,提取码:sjk8
用Qt打开simple-player.pro,将之前编译好的VLCQtCore.lib和VLCQtWidgets.lib拷贝到项目目录下(其实放在哪里都可以,只要在src.pro文件中添加库的时候能对应好就行)
在这里插入图片描述
src.pro文件中LIBS语句如下

LIBS       += -L$$PWD/../ -lVLCQtCore -lVLCQtWidgets

进行Release编译,效果如下
在这里插入图片描述
这里我播放的是FLV视频文件,与QtAV不同的是,VLC-Qt不仅支持MP4视频文件进度调整,还支持FLV视频文件进度调整,完美符合我的需求,到这里就大功告成了(๑•̀ㅂ•́)و✧

【参考文章】
QT5.9.3 使用vlc-qt
vlc-qt —— Windows下编译(最新)
Windows平台vlc-qt的编译和使用
VS2015+QT5.9.3+vlc-qt 完全编译
vlc-qt编译VS2017+QT5.9.0

【资源下载】
编译好的vlc-qt库文件以及头文件

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值