上篇文章使用VLC-Qt播放RTSP流介绍了如何直接使用VLC-Qt,这里将介绍如何编译VLC-Qt,方便以后修改源码。
我的环境:
windows 10
Qt 5.12.6 VS2017
vlc 3.0.9.2
CMake 3.13.0
一.下载
1.vlc下载
下载地址:http://download.videolan.org/pub/videolan/vlc/3.0.9.2/win32/
解压到:C:\vlc-3.0.9.2
2.vlc-qt及其examples下载
下载地址:https://github.com/vlc-qt/vlc-qt
https://github.com/vlc-qt/examples
我将examples放到vlc-qt目录中,方便管理。
然后在vlc-qt目录中新建build文件夹,用于装CMake生成的VS工程文件。vlc-qt目录现在是下面这个样子:
![](https://i-blog.csdnimg.cn/blog_migrate/bb3b978e812dd4a0e526bc48c434fef0.png)
二.生成VS工程文件
打开CMake-gui,定位到源文件及其Build目录,然后点击Configure按钮,弹窗中用默认设置,直接点击Finish按钮。
Configure的结果如下,报错了,没有人能随随便便成功。
错误信息是找不到libVLC,修改如下:
接着点击Configure按钮,OK,没错了,然后点击Generate按钮,生成VS工程文件。
三.编译
打开VLC-Qt.sln
开始编译,会出现几个错误
error C2065: “libvlc_media_read_cb”: 未声明的标识符
error LNK2026: 模块对于 SAFESEH 映像是不安全的
第一个错误是因为ssize_t无法识别导致的,将图中的ssize_t改成__int64,注意是两个下划线。要改的位置只有这一处。
第二个错误修改方法:
右键Core项目—>属性—>连接器—>命令行—>在“附加选项”中输入/SAFESEH:NO—>点击“应用”按钮
编译成功后,E:\vlc-qt\build\include中只有VLCQtCore文件夹,需要新建VCLQtWidgets文件夹,并把E:\vlc-qt\src\widgets中几个头文件拷贝到VCLQtWidgets中。
![](https://i-blog.csdnimg.cn/blog_migrate/eeb040335a5dc055c4ae4212d48353d9.png)
四.examples使用
打开E:\vlc-qt\examples\simple-player中的simple-player.pro,稍作修改如下:
#
# VLC-Qt Simple Player
# Copyright (C) 2015 Tadej Novak <tadej@tano.si>
#
TARGET = simple-player
TEMPLATE = app
CONFIG += c++11
QT += widgets
SOURCES += main.cpp \
SimplePlayer.cpp \
EqualizerDialog.cpp
HEADERS += SimplePlayer.h \
EqualizerDialog.h
FORMS += SimplePlayer.ui \
EqualizerDialog.ui
# Edit below for custom library location
LIBS += -LE:/vlc-qt/build/src/core/ -lVLCQtCore
LIBS += -LE:/vlc-qt/build/src/widgets -lVLCQtWidgets
INCLUDEPATH += E:/vlc-qt/build/include
编译不会报错,但是正常运行的话需要拷贝相应的dll和插件,如下图:
播放本地文件:
播放网络URL:rtsp://3.84.6.190/vod/mp4:BigBuckBunny_115k.mov
原创不易,转载请标明出处:https://blog.csdn.net/caoshangpa/article/details/114107183