在不同的Mac环境下,实践出来的效果可能跟本教程会有所差异。我的Mac环境是:Intel CPUmacOS Moterey(12.4)

FFmpeg

安装

在Mac环境中,直接使用Homebrew安装FFmpeg即可。还没有安装Homebrew,或者嫌Homebrew下载速度慢的童鞋,可以参考这篇文章:《01_Mac安装Homebrew》

brew install ffmpeg

安装完毕后,如果能成功在命令行查看FFmpeg的版本号,那说明已经安装成功。

ffmpeg -version

注意:使用brew install ffmpeg命令安装会安装ffmpeg最新版本的,有时最新版本的会有些问题,此时我们需要安装较低版本的怎么办呢?

我们可以登录这个https://brew.sh网站



点击ffmpeg@4进入下面界面。



复制上面的命令,在去执行就可以下载4.4.2版本的,(具体版本号,可以在网页下面找到)

目录结构

通过brew install安装的软件会存放到/usr/local/Cellar目录中,通过以下命令可以打开FFmpeg的安装目录。

cd /usr/local/Cellar/ffmpeg

open .

  • bin:有编译好的可执行程序:ffmpeg、ffplay等,可以直接在命令行上使用,比如

    • ffplay xx.mp4:可以直接播放某个视频
    • ffmpeg -version:可以查看FFmpeg的版本号
  • include:开发时需要包含的头文件
  • lib:链接时需要用到的库文件

Qt

安装

通过brew install安装Qt,最终被安装在/usr/local/Cellar/qt目录。

brew install qt

通过brew install --cask安装Qt Creator,最终被安装在/usr/local/Caskroom/qt-creator 目录。

brew install --cask qt-creator

配置

通过brew安装的Qt和Qt Creator是分开的,需要在Qt Creator中设置一下Qt的路径。

Qt的路径是在/usr/local中,默认是隐藏的。

  • 可以使用快捷键Command + Shift + .显示隐藏文件和文件夹
  • 可以使用快捷键Command + Shift + G手动输入Qt的文件夹:/usr/local/Cellar/qt

选择bin目录下的qmake

设置64bit那一项为默认开发环境。

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

开发

新建项目

新建项目的操作和Windows版本差不多。

运行后的效果如下图所示。

集成FFmpeg到Qt项目中

集成FFmpeg的操作也和Windows版本类似,修改.pro文件。

# 设置头文件路径
INCLUDEPATH += /usr/local/Cellar/ffmpeg@4/4.4.2_3/include # 设置库文件路径
LIBS += -L/usr/local/Cellar/ffmpeg@4/4.4.2_3/lib \
-lavcodec \
-lavdevice \
-lavfilter \
-lavformat \
-lavutil \
-lpostproc \
-lswscale \
-lswresample \
-lavresample

打印FFmpeg版本号。

#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();
}

代码链接

05_QT_Mac开发环境搭建的更多相关文章

  1. python开发环境搭建

    虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...

  2. IntelliJ IDEA安装及jsp开发环境搭建

    一.前言 现在.net国内市场不怎么好,公司整个.net组技术转型,就个人来说还是更喜欢.net,毕竟不是什么公司都像微软一样财大气粗开发出VS这样的宇宙级IDE供开发者使用,双击sln即可打开项目, ...

  3. Qt for Android开发环境搭建及测试过程记录

    最近学习了Qt的QML编程技术,感觉相较于以前的QtGUI来说更方便一些,使用QML可以将界面与业务逻辑解耦,便于开发. QML支持跨平台,包括支持Android平台,因此可以使用Qt的QML进行An ...

  4. node.js之开发环境搭建

    一.安装linux系统 (已安装linux可跳此步骤) 虚拟机推荐选择:VirtualBox 或者 Vmware (专业版永久激活码:5A02H-AU243-TZJ49-GTC7K-3C61N) 我这 ...

  5. TODO:小程序开发环境搭建

    TODO:小程序开发环境搭建 1.第一步当然是要先注册小程序了 2.登录到小程序 a)完善小程序信息,如名称,图标,描述 3.绑定开发者 4.获取AppID,并设置服务器信息 5.下载并安装开发者工具 ...

  6. Eclipse中Python开发环境搭建

    Eclipse中Python开发环境搭建  目 录  1.背景介绍 2.Python安装 3.插件PyDev安装 4.测试Demo演示 一.背景介绍 Eclipse是一款基于Java的可扩展开发平台. ...

  7. Windows 10 IoT Serials 1 - 针对Minnow Board MAX的Windows 10 IoT开发环境搭建

    目前,微软针对Windows IoT计划支持的硬件包括树莓派2,Minnow Board MAX 和Galileo (Gen 1和Gen 2).其中,Galileo (Gen 1和Gen 2)运行的是 ...

  8. Eclipse swt开发环境搭建

    原料: eclipse swt.下载链接为: Eclipse 4.6.2 Release Build: 4.6.2 配置说明: Developing SWT applications using Ec ...

  9. Ionic- Android 开发环境搭建

    Ionic- Android 开发环境搭建 为时一周的IONIC ADNROID 环境终于在各种处理错误中搭建成功,以下记录下搭建过程中遇到的各种情况的处理办法. 一 首先,当然是enviroment ...

  10. visual studio 2015 + Cordova 开发环境搭建

    简单的写一些,备忘,太折腾了,特别是通过代理上网的我们国内的开发者 1.当然是安装Visual Studio 2015,别忘了选择Tools For Apache Cordova. 对于通过Proxy ...

随机推荐

  1. C++中,new与malloc的区别何在?(代码实验向)

    在C++中,new与malloc()都可用于在堆中分配一块内存.其中,new是C++的语法,而malloc则来自古老的C语言,二者在使用时有何区别? new会调用构造函数,而malloc()不会 假设 ...

  2. Linux-编译源码时所需提前安装的常用依赖包列表

    编译源码时所需提前安装的常用依赖包列表: yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel f ...

  3. Kafka的ACK机制

    Kafka的ack机制,指的是producer的消息发送确认机制,这直接影响到Kafka集群的吞吐量和消息可靠性.而吞吐量和可靠性就像硬币的两面,两者不可兼得,只能平衡. ACK有3个可选值,分别是1 ...

  4. CF1348

    传送门 A: 一个组 \(2^n+2^1+\dots+2^{\frac{n}{2}-1}\),另一个组剩下的. B: 考虑不停循环. 如果不同的数字超过 \(k\),无解. 否则先把原序列去重,然后把 ...

  5. P1405 苦恼的小明 题解

    题目传送门 前置知识 扩展欧拉定理 解法 本题幂塔是有限层的,这里与 luogu P4139 上帝与集合的正确用法 中的无限层幂塔不同,故需要在到达递归边界 \(n+1\) 时进行特殊处理,对于处理 ...

  6. es6 快速入门 系列 —— Symbol

    其他章节请看: es6 快速入门 系列 Symbol es6新增的一种原始类型 试图解决的问题 唯一的属性名 给对象新增一个属性,如何保证这个属性名是独一无二的? 更改 instanceof 的运行方 ...

  7. 一个让java程序员有杀人的冲动的Xerces冲突问题

    History Xerces是Java生态圈使用最广泛的XML解析器,基本上所有的类库和框架都会在一定程度上使用它(即使没有直接引用,也有可能间接引用) Xerces在官网中发布的包是没有标注版本的, ...

  8. http 与 tcp 的一些学习

    HTTP 是一个基于 TCP/IP 通信协议来传递数据的协议,传输的数据类型为 HTML 文件,.图片文件, 查询结果等. HTTP 协议一般用于 B/S 架构().浏览器作为 HTTP 客户端通过 ...

  9. OpenCV开发笔记(六十三):红胖子8分钟带你深入了解SIFT特征点(图文并茂+浅显易懂+程序源码)

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  10. 在Directory.Build.props中用全局变量来管理包的版本号

    1.顶级目录下放置Directory.Build.props文件 为每个软件产品,分配一块独立的windows盘符,在根目录下放置名为Directory.Build.props的文件即可.这个文件名是 ...