超级简单的跨平台高性能音视频播放框架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 ...
随机推荐
- python(26)- 面向对象补充Ⅱ
一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)判断obj是否是类 cls 的对象 class Foo(object): ...
- 强化基础 Action ac = (System.Action)delegate() { Console.WriteLine("123456"); }; ac(); 委托间 也是 可以相互转换的
委托间 也是 可以相互转换的
- lockfile - conditional semaphore-file creator
LOCKFILE(1) LOCKFILE(1) NAME lockfile - conditional semaphore-file creator SYNOPSIS lockfile -sleept ...
- 在fedora25x86下编译opencv的Android版本的过程记录
准备材料: 1. 32位的Fedora25(不建议使用64位系统----64位系统下也是可以编译的,这里为了简单起见,考虑使用32位操作系统.事实上,本人在64位操作系统下也做了尝试,也完成了编译.) ...
- js event 的target 和currentTarget
target 点击的实际tag currentTarget 绑定事件的target
- 生产追溯系统-Wifi+传感器,实现计数器以及监控机器是否停止
物联网听上去是一个高大上的词儿,还有什么大数据.云.智能制造等等,今天我也往这方面稍微靠一靠,这篇文章主要介绍的是通过 wifi 模块与传感器组合,实现感应计数器,应用场景主要如下: 1.统计 SMT ...
- Jquery源码分析-整体结构
最近在学习Jquery的最新的源码,Jquery-3.3.1版本.网上有很多对jquery解析的文章.但是我还是要自己去尝试着看一篇jquery的源码.本系列博客用来记录其中的过程,并同大家分享.本次 ...
- hdu 1413 文件系统
hdu 1413 文件系统 题目链接:pid=1413" target="_blank">http://acm.hdu.edu.cn/sho ...
- Graphics and Animation in iOS
using System;using UIKit;using CoreGraphics;using Foundation; namespace GraphicsAnimation{ public c ...
- Theseven relationsarein threecategories:equivalent, congruent, andsimilar.
http://www.math.pitt.edu/~xfc/math2370/chap5.pdf