美文网首页
Mac BigSur OS 下 Qt安装以及集成ffmpeg 笔

Mac BigSur OS 下 Qt安装以及集成ffmpeg 笔

作者: San心两yi_钟 | 来源:发表于2021-03-07 19:59 被阅读0次

前言

最近在学习音视频开发技术,开发环境为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中的配置。

安装ffmpeg
ffmpeg真实路径

可以通过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 全程路径最好不要出现中文字符,光是这个坑我就花了不少时间😂。

以上就是这次的分享,有不当之处,求大佬指正。

相关文章

网友评论

      本文标题:Mac BigSur OS 下 Qt安装以及集成ffmpeg 笔

      本文链接:https://www.haomeiwen.com/subject/ispyqltx.html