目录
0、发行版测试
1、手动编译vlc-qt
经过一番摸索发现,想要使用QT开发rtsp等网络视频流软件,一般会用到两个开源项目:FFMPEG或VLC,不过直接使用这两者的API进行开发,仍然是较为复杂,有两位大神,分别对这两个开源项目进行了二次封装,使它们变得更加容易上手。
ntadej大神 基于vlc开发了vlc-qt,wangbin大神基于ffmpeg开发了QtAv。
本文只记录一下使用vlc-qt的步骤。
在阅读本文过程中,一定要区分vlc、vlc-qt。vlc是原版开源项目,vlc-qt是某大神基于vlc二次开发的封装。
vlc的所有发行版下载地址:http://download.videolan.org/pub/videolan/vlc/
vlc-qt官网: https://vlc-qt.tano.si/
vlc-qt应用实例:https://github.com/vlc-qt/examples
在他的官网上可以找到项目的源代码(在git上),以及发行版。
对于开发者来说,使用他的发行版是不够的,如下图所示,只提供了有限的几个发行版,这几个版本是基于【指定版本的VLC(官网说他用的2.2.4)、指定版本的QT(官网说他用的5.6)、指定版本的编译器】编译出来的,只要你的开发环境与之不一致,有很大概率是无法在这个发行版的基础上进行二次开发的,这时必须要自己编译vlc-qt。
在编译之前,建议先下载发行版试一下,如果能直接用那最好不过了。不行的话,再看下面的步骤进行自主编译。
例如,我的QT安装了msvc2015x32编译器,可以直接下载vlc-qt官网的MSVCx32位发行版,下载下来共有3个文件夹:
下载vlc-qt的示例程序:https://github.com/vlc-qt/examples, 并如下图所示,修改pro文件中的链接库的位置为:前文所述的下载的vlc-qt发行版的lib文件夹与include文件夹的位置。
如果一切正常的话,可以编译出exe文件。当然,这个exe是无法直接运行的,有2个解决方案:
方法(1),把编译出的exe拷贝到一个空文件夹里,并执行qt的打包程序,收集exe所依赖的dll等,然后把前文所述下载的vlc-qt发行版的bin文件夹里面的内容,都拷贝到与exe同目录,然后这个exe 就可以运行了。
方法(2)(推荐),把vlc-qt发行版的bin文件夹加入windows的系统path环境变量(需重启电脑),这样,可以直接在qt中启动调试运行。
win7自带的环境变量编辑器实在是一言难尽,上图是我下载一个环境变量编辑器,很好用。
如果发行版无法运行,那就只能进行下一步了,手动编译vlc-qt
下载vlc-qt源代码:https://github.com/vlc-qt/vlc-qt/releases,我下载的是最新版1.1.1
下载vlc发行版SDK:vlc-qt是基于vlc2.2.4做的,那我们也下载vlc2.2.4发行版。
用qt打开基于cmake的vlc-qt-1.1.1项目,修改cmake文件,如下图所示增加3行内容,这3行内容就是我们下载的vlc2.2.4的SDK的位置。题外话:你也可以直接使用原生cmake构造工程。
并修改编译出的文件的目标位置,这里将会存放我们编译出的VLC-QT发行版:
使用release模式进行编译,编译成功后,会在我们指定的文件夹中发现与官方发行版一样的目录结构,包含了bin、include、lib三个文件夹。
再强调一遍,lib和include文件夹,在以后的编译期间使用,bin在打包时使用。
按照第0小节的步骤,对我们自己编译出的vlc-qt进行测试
附送一个央视1套的视频地址,用于测试程序是否好用,http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8
效果如下:
ubuntu上使用就很简单了,不需要自己编译,ubuntu的软件仓库里有各种版本的发行版vlc-qt,我们要做的就是把官方发行版安装到系统环境目录中。按照官网的步骤操作即可,2或3行命令就安装好了。
add-apt-repository ppa:ntadej/tano
apt-get install libvlc-qt-core2 libvlc-qt-widgets2 libvlc-qt-dbg libvlc-qt-dev
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 55D8172B
经测试,运行的效果与win上一模一样。