超级简单的跨平台高性能音视频播放框架QtAv编译指南
一、了解QtAv
这几天抱着试一试的心态,尝试着了解了下QtAv这个库,感觉确实挺不错的,因此就打算学习下这个库。
断断续续的看了不少文章,大多数都是通过百度搜索出来的文章。说实话百度上大多数文章内容都差不多,而且很少有文章说清楚了编译时的环境配置和编译器上的区别,导致我自己也一度认为这个库很难编译。其实真的不难
网上的资源真的很多,但是有点儿杂乱,新手上来一看可能很容易就懵逼了。可是我这里要告诉大家,真的不需要害怕,这个库的编译真的炒鸡简单,不信看我第三小节开始的编译步骤,简单到不敢相信。
因为我看到了windows编译qtav这篇文章,文章中清楚的说明了环境变量配置是需要根据编译器进行选择设置的,这时自己的思路也一下子就开阔了。
我这里使用的是QtCreator编辑器,编译器使用的是是MSVC,是vs2013的编译器。所以头文件需要配置到Include上,库文件需要配置到Lib目录上。
如果是gcc的编译器,配置才可能像下边这样。这个我没有测试,因为我自己是msvc环境,不过网上这么多人说了,估计应该也没啥问题。这也是为啥我开头说网上资源乱,因为我看的大多数是Mingw集成环境下的文章。
CPATH : C:\Users\Administrator\Desktop\QtAV-depends-windows-x86+x64\QtAV-depends-windows-x86+x64\include
LIBRARY_PATH : C:\Users\Administrator\Desktop\QtAV-depends-windows-x86+x64\QtAV-depends-windows-x86+x64\lib
首先说明我的编译环境:
- Qt版本:Qt5.7.1
- 编译器:vs2013上的MSVC编译器
- 编辑工具:QtCreator 4.2,其实跟这个关系不大,只是一个ide而已,我们使用的编译器仍然是微软的msvc编译器。
- 系统:Win10 64位
重点强调下,windows编译qtav这篇文章一定要看,内容真的很实用。主要是告诉你在编译前期,msvc和gcc两种编译器下,怎么去配置环境变量。
二、相关文章
编译步骤:Qt5.5.0编译QtAV
不同编译器下环境变量配置:windows编译qtav
我自己是看着Qt5.5.0编译QtAV这篇文章进行编译的,最起码资源都是在文章中的连接里下载的,包括QtAv源码和依赖库QtAV-depends-windows-x86+x64
但是参考这篇文章中配置环境变量时,一定要注意,这篇文章中的作者是GCC编译器。而我们自己去要根据自己的编译环境来配置环境变量,如果你是MINGW集成环境,也就是说你是GCC编译器,那么恭喜你,直接按原文配置即可。
但是,如果你不是GCC编译器,那么你就需要看windows编译qtav
这篇文章,他会告诉你,其他编译器怎么配置环境变量
MSVC编译器,配置方法如下。把头文件和库文件分别配置在Include和LIB目录上。
如果是gcc的编译器,需要把头文件和库文件分别配置在CPATH和LIBTRARY_PATH环境变量上。

三、下载QtAv源码
源码下载时直接上官方的github即可,QtAv
四、下载QtAv依赖库
由于QtAv是基于ffmpeg开发的,因此我们需要下载相关依赖库。QtAV-depends-windows-x86+x64
五、设置环境变量
根据不同编译器设置方法不一样,具体参看windows编译qtav这篇文章
1、gcc设置方式
CPATH : C:\Users\Administrator\Desktop\QtAV-depends-windows-x86+x64\QtAV-depends-windows-x86+x64\include
LIBRARY_PATH : C:\Users\Administrator\Desktop\QtAV-depends-windows-x86+x64\QtAV-depends-windows-x86+x64\lib
2、msvc(cl)设置方式

图中环境变量列表中加粗的字即是我添加的环境变量,msvc编译器下INCLUDE和LIB这个两个变量本身就是存在的,所以我们只需要在值那一列把include和lib目录添加上即可。
注意:需要添加自己的QtAV-depends-windows-x86+x64依赖库路径
六、编译
环境变量配置好之后,直接点击构建即可,编译成功后,效果如下

七、测试
编译完成之后,我们会发现bin目录下会有很多可执行文件,这个时候我们可以执行其中某一个可执行文件对我们编译的库进行测试。
首先拷贝QtAv的依赖库ffmpeg,找到之前解压的QtAV-depends-windows-x86+x64文件夹,把里边的bin目录下的资源文件都拷贝到我们刚才编译出来的QtAv目录下。
找到我们刚才编译生成的bin目录,打开里边的simpleplayer.exe可执行程序。选择一个本地的资源文件进行播放,效果图可能如下图所示,这里是只放了一张图,主要作为示意。

到这里,我们的QtAv就编译完成了。
后续有时间我会尝试使用这个库,然后做更进一步的分析
![]() |
![]() |
很重要--转载声明
本站文章无特别说明,皆为原创,版权所有,转载时请用链接的方式,给出原文出处。同时写上原作者:朝十晚八 or Twowords
如要转载,请原文转载,如在转载时修改本文,请事先告知,谢绝在转载时通过修改本文达到有利于转载者的目的。
超级简单的跨平台高性能音视频播放框架QtAv编译指南的更多相关文章
- Ajaxupload插件超级简单使用(php的ci框架)
Ajaxupload简单使用 友情提示:1.蓝色文字为必修改内容.2.#字符后面是解释该代码段的主要内容 备注: 该实例是用php的ci框架直接接收图片并 ...
- Chimee - 简单易用的H5视频播放器解决方案
Chimee是由奇舞团开源的一套H5视频播放器解决方案,由奇舞团视频云前端团队结合在业务和视频编解码方向的沉淀积累倾心打造.Chimee支持MP4.M3U8.FLV等多种媒体格式,同时它也帮我们解决了 ...
- Notyf - 超级简单、响应式的 JS 通知插件
通知是网站的常用功能之一,可以用来显示消息.通告.提示等等.Notyf 是一款超级简单.响应式的 JS 通知插件,不依赖 jQuery 库,可以独立使用.赶紧试用一下吧! 在线演示 免费下载 ...
- Pyqt 音视频播放器
在寻找如何使用Pyqt做一个播放器时首先找到的是openCV2 openCV2 貌似太强大了,各种关于图像处理的事情它都能完成,如 读取摄像头.图像识别.人脸识别. 图像灰度处理 . 播放视频等,强 ...
- 新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析
1.引言 Netty 是一个广受欢迎的异步事件驱动的Java开源网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端. 本文基于 Netty 4.1 展开介绍相关理论模型,使用场景,基本组件 ...
- Netty高性能原理和框架架构解析
1.引言 Netty 是一个广受欢迎的异步事件驱动的Java开源网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端. 本文基于 Netty 4.1 展开介绍相关理论模型,使用场景,基本组件 ...
- OHSCE_V0.1.22 Beta,跨平台高可靠性通信框架
Open HI-REL Signal Communication Engine(简称OHSCE)是一款高可靠性跨平台的PHP通信框架,Windows友好且同时支持Linux和OS X.对TCP.UDP ...
- Android音视频之MediaPlayer音视频播放
前言: 昨天总结了视频录制,今天来学习一下视频的播放,Android的视频播放主要采用MediaPlayer类. MediaPlayer介绍 MediaPlayer类可用于控制音频/视频文件或流的播放 ...
- 转:最简单的基于 DirectShow 的视频播放器
50行代码实现的一个最简单的基于 DirectShow 的视频播放器 本文介绍一个最简单的基于 DirectShow 的视频播放器.该播放器对于初学者来说是十分有用的,它包含了使用 DirectSho ...
随机推荐
- sonar + ieda实现提交代码前代码校验
代码风格不同一直是一件停头疼的事情,因为不同的工作经验,工作经历,每个人的代码风格不尽相同,造成一些代码在后期的维护当中难以维护, 查阅一些资料之后发现 idea + sonar 的方式比较适合我,实 ...
- mysql 查询表索引的命令详解
http://hi.baidu.com/wylinux/item/cbc458c2984381300831c651查看索引命令mysql> show index from tblname;mys ...
- 【转载】读懂IL代码就这么简单(三)完结篇
一 前言 写了两篇关于IL指令相关的文章,分别把值类型与引用类型在 堆与栈上的操作区别详细的写了一遍这第三篇也是最后一篇,之所以到第三篇就结束了,是因为以我现在的层次,能理解到的都写完了,而且个人认为 ...
- 2014年8月25日,收藏家和杀手——面向对象的C++和C(一)
近期事情特别多,睡眠也都非常晚,有点精神和身体混乱的感觉,所以想写写技术分析文章.让两者的我都调整一下.这篇技术分析文章是一直想写的,当前仅仅是开篇,有感觉的时候就写写,属于拼凑而成,兴许的篇章没有时 ...
- ubuntu + lamp + laravel 环境配置
首先是LAMP 安装顺序是 A(Apache服务器) M(Mysql) P(Php) 安装apache sudo apt-get install apache2 安装mysql sudo apt-g ...
- Spring Cloud(十二):Spring Cloud Zuul 限流详解(附源码)(转)
前面已经介绍了很多zuul的功能,本篇继续介绍它的另一大功能.在高并发的应用中,限流往往是一个绕不开的话题.本文详细探讨在Spring Cloud中如何实现限流. 在 Zuul 上实现限流是个不错的选 ...
- 【程序猿联盟】官网上线啦!coderunity.com
wx_fmt=jpeg" alt="" style="max-width:100%; height:auto!important"> 内容简单介 ...
- mysql字符太长警告
用navicateclient,打开相应的数据库. 打开函数.找相应的val()函数,进行编辑,就能够!编辑范围为4000
- GreenPlum 安装方法详解
一.安装环境准备 1.磁盘环境准备 磁盘分区典型配置如下: 文件系统 文件格式 大小 / ext3 50GB,Linux系统的根目录,所有的目录都挂在这个目录下面,建议大小为 ...
- sticky session 粘性会话
New Elastic Load Balancing Feature: Sticky Sessions | AWS News Blog https://amazonaws-china.com/cn/b ...

