Mac环境
本文Mac
硬件环境为M1 Pro
,系统为MacOS Ventura 13.6
,硬件和系统不同,实际情况会有差异,以你实际为准。
1 ffmpeg
1.1 安装
在Mac
环境,直接使用HomeBrew
来安装FFmpeg
。如果还没有按照HomeBrew
,可以参考《Mac 安装homebrew》。
SH
brew install ffmpeg
安装完毕后,如果能在终端中成功查看FFmpeg
的版本号,说明已经安装成功。
SH
ffmpeg -version

1.2 目录结构
通过brew install
安装的软件会存放在/opt/homebrew/Cellar
目录中,通过如下命令可以打开FFmpeg
的安装目录。
SH
cd /opt/homebrew/Cellar/ffmpeg
open .

通过command + shift + G
输入/opt/homebrew/Cellar/ffmpeg
也可以查看FFmpeg
的安装目录。

bin
: 有编译好的可执行程序:如ffmpeg
、ffplay
等,可以直接在终端使用,比如:ffplay xx.mp4
:直接播放某个视频。ffmpeg -version
:查看FFmpeg
的版本号。
include
:开发时需要包含的头文件。lib
:链接时需要用到的库文件。
2 Qt
2.1 安装
通过brew install
安装Qt
,最终被安装在/opt/homebrew/Cellar/qt
目录中。
SH
brew install qt
通过brew install --cask
安装Qt Creator
,最终被安装在/opt/homebrew/Caskroom/qt-creator
目录中。
SH
brew install --cask qt-creator
2.2 配置
通过brew
安装的Qt
和Qt Creator
是分开的,需要在Qt Creator
的首选项中设置一下Qt
的路径。


Qt
的路径在/opt/homebrew/Cellar
中,opt
默认是隐藏的。
- 可以使用快捷键
command + shift + .
来显示、隐藏文件和文件夹。 - 可以使用快捷键
command + shift + G
手动输入Qt
的文件夹:/opt/homebrew/Cellar/qt
,然后回车键前往。

选择Qt
对应版本目录下bin
目录下的qmake
。


设置64bit
为构建套件的默认开发环境。

滚动到底下,选择刚才设置的Qt
版本。

3 开发
3.1 新建项目
新建项目选择Qt Widgets Application
。

设置默认路径和项目名。

构建系统选择qmake
。

Details
、Translation
和构建套件(选择之前设置的64bit
)不用更改,直接点击继续。



是否作为子项目和版本控制系统根据自身需求设置。

新建完项目后,运行的效果。

3.2 集成FFmpeg
到Qt
项目中
修改项目名.pro
文件,在末尾设置头文件路径和库文件路径。
C++
# 设置头文件路径
INCLUDEPATH += /opt/homebrew/Cellar/ffmpeg/6.0_2/include
# 设置库文件路径
LIBS += -L/opt/homebrew/Cellar/ffmpeg/6.0_2/lib \
-lavcodec \
-lavdevice \
-lavfilter \
-lavformat \
-lavutil \
-lpostproc \
-lswscale \
-lswresample \
-lavresample

打印FFmpeg
版本号,测试集成效果。
C++
#include "mainwindow.h"
#include <QApplication>
#include <QDebug>
extern "C" {
#include <libavcodec/avcodec.h>
}
int main(int argc, char *argv[])
{
// 打印版本号
qDebug() << av_version_info();
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
