前言
最近在学习音视频开发技术,开发环境为Qt搭配ffmpeg进行音视频开发学习。虽然网上QT环境搭建教程有许多,但是Mac下的资源比较少。所以记录一下自己的搭建经验。
正文
安装步骤:
- 1.Mac配置ffmpeg。
- 2.安装QT。
- 3.在QT中创建工程,并且配置完成ffmpeg。
当前开发环境:
macOS Big Sur 11.01
Qt Creator 4.14.1
Based on Qt 5.15.2 (Clang 11.0 (Apple), 64 bit)
xcode 12.32
ffmpeg 4.3.1_3
1. Mac下安装ffmpeg
最简单统一的方法就是通过HomeBrew进行安装ffmpeg。
brew install ffmpeg
详情可以参考: https://www.jianshu.com/p/627b2d462151
任务1:确认自己电脑中ffmpeg库的路径,用于后续QT中的配置。
安装ffmpegffmpeg真实路径
可以通过where命令来查找 ffmpeg 系统目录在哪里。然后找到真正的ffmpeg的位置,如果使用 Homebrew 自动安装,一般都是以下路径,因为我是很久之前安装的,所以目前我的版本为4.3.1_3。
/usr/local/Cellar/ffmpeg/4.3.1_3/bin/ffmpeg
// 可以通过查询 /usr/local/Cellar/ffmpeg/ 看看自己的版本号
2. Mac安装QT
坑1:
一开始使用的是5.14版本的离线安装,安装成功,但是在BigSur 系统中 xcode 11.1,运行项目会卡着无法响应。
Project WARNING: Qt has only been tested with version 10.15 of the platform SDK, you're using 11.1.
Project WARNING: This is an unsupported configuration. You may experience build issues, and by using
Project WARNING: the 11.1 SDK you are opting in to new features that Qt has not been prepared for.
Project WARNING: Please downgrade the SDK you use to build your app to version 10.15, or configure
Project WARNING: with CONFIG+=sdk_no_version_check when running qmake to silence this warning.
解决方法:
安装新的版本,但是最近的几个版本只支持在线下载。
在线安装可以参考:
https://blog.csdn.net/scz653037148/article/details/110132173
在安装的时候选择环境时,记得勾上macOS,其他看自己的需求
安装选中的配置参考
3. Mac中集成ffmpeg
创建一个QT工程,然后配置.pro文件添加ffmpeg链接
在.pro 最后添加以下代码
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.14
# 设置FFmpeg头文件的位置
INCLUDEPATH += -I /usr/local/Cellar/ffmpeg/4.3.1_3/include
# 设置FFmpeg导入库的位置
LIBS += -L /usr/local/Cellar/ffmpeg/4.3.1_3/lib -lavutil
坑2:
编译出错时
warning: dylib (/usr/local/Cellar/ffmpeg/4.3.1_3/lib/libavutil.dylib) was built for newer macOS version (10.15) than being linked (10.14)
解决方法:
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.14
通过在Qt 工程中修改.pro文件,就可以链接上Mac中的ffmpeg。
在main.cpp 中进行检验
#include "mainwindow.h"
#include <QApplication>
#include <QDebug>
// FFmpeg是纯C语言的
// C++是不能直接导入C语言函数的
extern "C" {
#include <libavcodec/avcodec.h>
}
int main(int argc, char *argv[])
{
// 通过qputenv函数设置QT_SCALE_FACTOR为1 消除警告
qputenv("QT_SCALE_FACTOR", QByteArray("1"));
qDebug() << av_version_info();
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
控制台得到输出:
image.png
链接成功!
总结
虽然安装配置过程比较简单,但不同环境中会出现不同问题,面对问题需要细心留意每一个⚠️警告 或 ❌ 错误提示,往往就是解决问题的关键。 比如说Qt 全程路径最好不要出现中文字符,光是这个坑我就花了不少时间😂。
以上就是这次的分享,有不当之处,求大佬指正。
网友评论