超级简单的跨平台高性能音视频播放框架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 ...
随机推荐
- ffmpeg h264编码 extradata 为空
ffmpeg h264编码的例子前面的文章已经介绍,本来主要讲述影响AVCodecContext extradata是否为 空的配置项.如果要求open编码器以后AVCodecContext extr ...
- Android.mk: recipe commences before first target. Stop.
[GUIDE] Setup Android Development Environment on Ubuntu 14.04 Trusty Tahr Hi All, This originally wa ...
- 基于LRU Cache的简单缓存
package com.test.testCache; import java.util.Map; import org.json.JSONArray; import org.json.JSONExc ...
- 【剑指Offer学习】【面试题62:序列化二叉树】
题目:请实现两个函数,分别用来序列化和反序列化二叉树. 解题思路 通过分析解决前面的面试题6.我们知道能够从前序遍历和中序遍历构造出一棵二叉树.受此启示.我们能够先把一棵二叉树序列化成一个前序遍历序列 ...
- 查看客户端java日志
通过 Java 控制面板启用 Java 控制台 Windows 8 使用搜索来查找控制面板 按 Windows 徽标键 + W 以打开搜索框来搜索设置,或者将鼠标指针拖动到屏幕的右下角,然后单击搜索图 ...
- CSS伪类:before 和 :after
CSS用了许久,对一些伪类熟视无睹,从不想着去搞清楚一下.比如说这个 :before :after 其实,:before 表示该标记前面的样式,反之 :after 代表设置后面的样式.网页上常常看到有 ...
- asp.net mvc4 修改密码界面
1.效果 说明:1.界面不太美观 这里面主要是包括 利用jQuery 插件validate验证form字段,jQuery提交form表单的方式 1.HTML代码 <!DOCTYPE html&g ...
- 2018.11.06 生成器函数进阶&列表推导式&生成器表达式
1.生成器函数进阶 2.列表推导式 3.生成器表达式
- windows IDA 调试SO
还是参考了网上的很多资料,感谢这些前辈的分享. ===================================================================== 环境:win ...
- Android Handle,Looper,Message消息机制
尊重原创,转载请标明出处 http://blog.csdn.net/abcdef314159 我们知道在Android中更新UI都是在主线程中,而操作一些耗时的任务则须要在子线程中.假设存在多个 ...