0.前言

本文主要是记录QtAV的编译及使用过程,在MSVC2015-2019搭配Qt5.9-5.12这个版本范围内使用过,没有出现编译错误或编译出来的动态库无法使用的情况。

《门前》----顾城

... 草在结它的种子

风在摇它的叶子

我们站着,不说话

就十分美好 ...

本文目录

1.准备工作

2.编译

3.简单使用

4.参考


1.准备工作

QtAV的源码

下载链接:https://github.com/wang-bin/QtAV

git clone https://github.com/wang-bin/QtAV.git
cd QtAV && git submodule update --init

FFmpeg库

(其实可以用作者编译好的,如果环境和版本符合要求的话,地址http://sourceforge.net/projects/qtav/files/depends)

下载链接:https://ffmpeg.zeranoe.com/builds/

需要下载shared运行依赖库和dev开发依赖库,我下的4.1.3-windows32bit的,因为我编译器是msvc2015-32bit。把ffmpeg的库下下来后,解压,然后将库文件放到Qt的环境中去。

将xxx-dev\include下所有文件,拷贝到Qt环境的include下(如:D:\Qt\Qt5.9.8\5.9.8\msvc2015\include)。

将xxx-dev\lib下所有lib,拷贝到Qt环境的lib下(如:D:\Qt\Qt5.9.8\5.9.8\msvc2015\lib)。

因为我要在Qt里调试,所以把xx-shared\bin下的文件也拷贝到Qt目录下(如:D:\Qt\Qt5.9.8\5.9.8\msvc2015\bin)。

2.编译

其实编译挺简单的,不过我试了好几次才成功的编译出能用的。

用QtCreator打开QtAV.pro工程文件,直接构建就行了。我先构建的debug版本(出了点小问题),然后又构建的release版本一切正常,我又再次构建debug版本,这次都是正常的了。(建议就用默认的影子构建,这样编译出来的东西好找一点)

编译完成后,库在xxx\lib_win_x86文件夹下(如:E:\git_space\build-QtAV-Desktop_Qt_5_9_8_MSVC2015_32bit-Debug\lib_win_x86),示例程序在xxx\bin文件夹下(如:E:\git_space\build-QtAV-Desktop_Qt_5_9_8_MSVC2015_32bit-Debug\bin),不过示例可能需要用windeployqt打一下包,也可能需要把提示缺的库文件拷贝过去。

库文件不用自己拷贝到环境中,点击目录下的sdk_install.bat脚本自动把文件放到对应的目录。(debug和release的我都点了,如果需要重新编译点sdk_uninstall.bat,免得冲突的话还要手动去删之前的文件)

3.简单使用

参考QtAV\examples目录下的例子以及readme的说明构建简单的应用,源码文件夹下xxx\QtAV\doc\UseQtAVinYourProjects-zh_CN.md文档也可以参考。

(一开始我遇到QtAV文件不存在的错误,然后重新编译好几次才正常了,也不知道啥原因)

Widgets中的使用:

(摘自文档)自 QtAV 1.5 基于 QWidget 的渲染器被移到了新模块 QtAVWidgets, 若需要使用这些渲染器比如 OpenGLWidgetRenderer,在pro工程文件加入:

QT += avwidgets

C++ 代码中加入:

#include <QtAV>

#include <QtAVWidgets>

因为ui布局文件看起来不方便的原因所以我没把代码完整贴出来,可以参照simpleplayer例子,不过例子中的VideoOutput类型我用不了,会异常结束,我用的VideoRenderer。另外,main.cpp中的registerRenderers可以去掉,貌似没影响。

Qml中的使用:

//QML的话可以不用在pro中添加别的模块

//main.qml
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2
import QtAV 1.7Window {id:item_rootvisible: truewidth: 640height: 480title: qsTr("Hello World")color: "gray"VideoOutput2 {id: item_videosource: item_playeranchors.fill: parentanchors.bottomMargin: 30Slider{id:item_slideranchors.left: parent.leftanchors.right: parent.rightanchors.bottom: parent.bottomfrom:0value:0to:1onValueChanged: {if(item_slider.pressed)item_player.seek(item_player.duration*value)//console.log(item_player.duration)}}}MediaPlayer{id:item_player//替换成自己的文件或者网络视频流source: "F:/test.mp4"onPaused: {console.log("----------paused")}onPlaying: {console.log("----------playing")}onStopped: {console.log("----------stopped")}onPositionChanged: {if(!item_slider.pressed)item_slider.value=position/durationconsole.log("----------buffer position",position)}}Row{anchors.left: parent.leftanchors.bottom: parent.bottomanchors.margins: 2height: 30spacing: 2Button{anchors.verticalCenter: parent.verticalCenterwidth: 60height: 26text: "play"onClicked: {console.log("-------------play clicked")item_player.play()}}Button{anchors.verticalCenter: parent.verticalCenterwidth: 60height: 26text: "pause"onClicked: {console.log("-------------pause clicked")item_player.pause()}}Button{anchors.verticalCenter: parent.verticalCenterwidth: 60height: 26text: "stop"onClicked: {console.log("-------------stop clicked")item_player.stop()item_slider.value=0}}}
}

效果如下:

到此,编译与基本的使用也就走完一遍了,剩下的就是摸索这个库,进行定制。

(2019-11-27)今天用 QML 版本打包发布才发现,除了 qml文件夹 下的 QtAV ,还得把 QtAV1.dll 这个动态库一起发布,不然加载失败。

(2020-01-01)在 Win10 上生成的 QML 程序放到 Win7 上,释放组件时程序直接崩溃,并且视频暂停播放音调会停在那里一直响。

4.参考

作者文档:https://github.com/wang-bin/QtAV/wiki/Build-QtAV

博客-编译:https://www.cnblogs.com/motadou/p/9310560.html

博客-编译使用:https://blog.csdn.net/wuchalilun/article/details/74981736

博客-编译使用:https://blog.csdn.net/mccoy39082/article/details/82818716

博客-编译安装:https://blog.csdn.net/qq_36372055/article/details/93380298

QtAV的编译与使用(MSVC2015+Qt5.9.8)相关推荐

  1. QGIS编译---QGIS3.22.4 + Qt5.15.3 + VS2019 ---64位版本

    0 编译结果 先放上编译结果: 图1 QGIS3.22 启动界面 图2 QGIS3.22 操作界面 1 前言 因一些主观.客观原因,一年多没更新博客了,提笔继续. 这是笔者编译的第三个版本QGIS,本 ...

  2. CTK编译及使用(Qt5.9.9 + MSVC2015_x64 + CMake3.23.1)

    目录 环境准备 生成步骤 总结 ​​​​​​​ 环境准备 编译环境为:Qt5.9.9 + MSVC2015_x64 + CMake3.23.1 CTK源码下载:https://github.com/c ...

  3. 桌面排版软件Scribus v1.5.5源码编译,使用VS2017+Qt5.12.7环境

    软件官网 Scribus – Open Source Desktop Publishing Scribus Wiki Scribus Forums - Index 官方论坛 WebSVN - Scri ...

  4. LibreCAD v2.2.0源码编译,使用VS2019+Qt5.12.9+Boost1.71.0环境

    零.前言 LibreCAD is a fork of QCAD community edition version 2.0.5.0;therefore, any modifications of or ...

  5. 太阳神三国杀学习第一步--编译并运行(qt5.7.0+vs2015)

    起因:     很早就想寻找一个开源的c++项目进行学习,也在很早就发现了太阳神三国杀这个项目,但是之前在github中下载后总是草草编译一直没有编译成功过,最近又重燃斗志决定深入研究一下. 分析应该 ...

  6. CentOS8安装Geant4笔记(三):Geant4介绍、编译、安装支持Qt5界面并运行exampleB1例程显示Qt界面

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/123495062 各位读者,知识无穷而人力有穷 ...

  7. QtAV视频播放器的介绍、编译以及简单使用

    背景 简介 QtAV是基于Qt和FFmpeg的多媒体播放库.它可以帮助您以前所未有的精力编写播放器. 强大的功能 QtAV可以满足您的最大需求 硬件解码支持:DXVA2,VAAPI,VDA / Vid ...

  8. QtAV编译以及使用

    前言 本文详细描述Window 10 和Ubuntu 14.04使用Qt Creator编译QtAV 1.12的步骤 1 Windows 1.1 依赖环境 第一种方法: 下载编译好的ffmpeg-3. ...

  9. Win10/Win7离线搭建Qt5.12+MinGW/MSVC2015开发环境

    三种Qt开发环境方案 Win10搭建Qt + Clion 版本选择与开发环境方案 Qt5.12.8 + Clion/QtCreator + MinGW:无法使用MSVC编译的lib库 Qt5.12.8 ...

最新文章

  1. 2007年100款最佳安全工具谱
  2. 波士顿动力机器人齐秀舞姿,这是要成团出道?
  3. 第三天2017/03/30(下午:二级指针的(输出)内存模型)
  4. winform响应时间最长是多少分钟_史上最短职业赛是多少时间?《王者荣耀》中国队只花了三分钟...
  5. [BZOJ1726][Usaco2006 Nov]Roadblocks第二短路
  6. 第四章 纤维结构对染色性能的影响单元测验
  7. 通用即插即用监视器驱动下载_电脑设备驱动程序有问题,教你3招,快速修复...
  8. python代码编写_高质量Python代码编写的5个优化技巧
  9. 集合的洗牌,排序,拆分以及常用遍历方法
  10. 拓端tecdat|R语言Apriori算法实例——322万知乎用户的关注话题关联分析
  11. 实战SpringBoot Admin
  12. 塞班系统是如何没落的
  13. 一加7pro电脑模式_一加7pro值不值得买?
  14. 怎样启动模拟器模拟鸿蒙系统,鸿蒙OS 模拟器运行
  15. The end tag is unbalanced异常
  16. OSINT + Python = 自定义黑客
  17. Sqli-labs 基本注入篇 (Less1~22)
  18. 和平精英灵敏度分享码服务器没有响应,和平精英灵敏度分享码
  19. vpb在VS2008下的配置编译
  20. IE安全系列之——昨日黄花:IE中的ActiveX(I)

热门文章

  1. java 室内3d_室内地图制作-首款实时室内绘制室内地图-3D室内地图
  2. python绘制笛卡尔心形线方程_canvas绘制爱心的几种方法
  3. 17.11.25B组总结
  4. 如何编写python函数_编写高质量的Python代码系列(二)之函数
  5. 页面浏览pdf或图片iframe
  6. 20222817《Linux内核原理与分析》第五周作业
  7. 转自汇编网: 高三老师给大一学生的一封信(感动!)
  8. 英菲克I5M_I6M_I7M_I10M-晶晨S805处理器-当贝纯净桌面-线刷固件包
  9. 如何在计算机查找类型文件类型,怎样在电脑中查找某一类型文件?比如查 txt...
  10. 如何快速融入团队并成为团队核心(四)