[已成功]在mac上安装FFmpeg,详细全过程

news2024/12/30 3:39:31

记录一次痛苦的在mac上安装ffmpeg的过程

  • 前言
  • 在 mac 上下载安装ffmpeg的试探之路
    • 1、从官方网站下载FFmpeg软件包
    • 2、选择用于macOS 64位的静态构建。这将使你重定向到evermeet.cx网站。
    • 3、通过 Homebrew 安装 FFmpeg
      • 3.1、在使用 Homebrew 安装的过程中可能会出现的问题
        • 3.1.1 墙的问题
  • 写在最后
  • 参考文章

前言

之前在 windows 上安装 ffmpeg 玩耍的时候,感觉在 windows 上安装 ffmpeg 是很简单轻松的。

windows 安装 ffmpeg 过程详解 => 【最新】windows电脑FFmpeg安装教程手把手详解

为了验证 rtsp2web 在 mac 平台上的完善性和功能,准备在 mac 上安装 ffmpeg

没想到在 mac 上安装 ffmpeg 麻烦了。。。。

在 mac 上下载安装ffmpeg的试探之路

目前已知的几种在 mac 上安装 ffmpeg 的方式有如下几种:

  • 1、从官方网站下载FFmpeg软件包
  • 2、使用静态构建在 Mac 上安装 FFmpeg
  • 3、通过 Homebrew 安装 FFmpeg

1、从官方网站下载FFmpeg软件包

从 ffmpeg 的官网下载 mac 平台下的静态二进制文件
在这里插入图片描述

ffmpeg 鼓励所有用户使用当前的快照构建而不是发布构建。仅接受快照构建的错误报告。

下载后解压,得到 ffmpeg 的可执行文件:
在这里插入图片描述

我双击这个图标,出现如下画面:
在这里插入图片描述

下一步就是要把这个 ffmpeg 文件配置到系统的环境变量中去,使其成为系统命令:

todo

  • 如何配置环境变量?

到这里的后续操作,有会的朋友,可以加我联系方式,交流~

2、选择用于macOS 64位的静态构建。这将使你重定向到evermeet.cx网站。

选择ffmpeg-5.0.1版本。
打开下载的文件。这将使用Archive Utility将其解压,并创建一个可执行的FFMpeg文件。

3、通过 Homebrew 安装 FFmpeg

1、首先,你可以先更新一下你的 Homebrew:

# 更新
$ brew update
# 升级到最新的 Homebrew
$ brew upgrade

2、安装 FFmpeg

# 在 Homebrew 上安装最新版本的 FFmpeg
$ brew install ffmpeg

Homebrew 会安装 FFmpeg 以及相关的所有依赖项。

等待安装完成,然后启动 FFmpeg 进行验证:

# 验证 FFmpeg
$ ffmpeg -version

3、安装 Git Master 版本
如果你要安装最新的 FFmpeg Git master 版本,请将 --HEAD 标志添加到安装命令中。

brew install ffmpeg --HEAD

Homebrew 会克隆 FFmpeg 的 Git 仓库并使用 master 分支。

4.1、使用第三方存储库安装(可选)
FFmpeg 的默认版本带有精选的免费库。如果您需要在 FFmpeg 安装中包含其他库(包括专有库),请按照以下步骤操作:

# 添加以下 Homebrew tap(第三方存储库)
$ brew tap homebrew-ffmpeg/ffmpeg

4.2、使用以下命令安装第三方版本的FFmpeg

$ brew install homebrew-ffmpeg/ffmpeg/ffmpeg

3.1、在使用 Homebrew 安装的过程中可能会出现的问题

3.1.1 墙的问题

Homebrew 安装 FFmpeg 属于在线安装,会在线下载 FFmpeg 的依赖,然后编译,得到 FFmpeg。这个过程中,可能会出现,因为网络等原因,而导致的失败,例如 jpeg-xl 的下载超时/失败,等等问题,如下:

【截图省略】

那么,这个时候,你需要用到科学上网的方式,开启网络代理,并且会你的命令行工具也配置上代理,再继续尝试安装,就能成功了:
在这里插入图片描述
解决了这个问题以后,我继续重新安装 ffmpeg,出现以下问题:
在这里插入图片描述
提到 Homebrew 安装 curl 失败,我手动自己安装一次:
在这里插入图片描述
手动安装好了 curl 以后,再继续 brew install ffmpeg

一路畅通,需要的依赖全部下载好了,后面就是漫长的编译过程,等待中… 然后整个 ffmpeg 就安装完成了。

写在最后

没想到在 Mac 上安装 FFmpeg 竟然会一波三折,好在终于安装好了。

关于第一点中提到的,从官网上下载的 FFmpeg 二进制文件如何配置环境变量的问题,感兴趣的同学可以加我联系方式,一起交流学习。 🌹🌹

参考文章

清华大学开源软件镜像站 - Homebrew / Linuxbrew 镜像使用帮助

how-to-install-ffmpeg-on-any-platform

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/478755.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL】初识MySQL

数据库的重要性相信不需要我在这里着重强调了,这个专栏重点介绍的就是MySQL数据库,我所使用的版本为5.6,大致思路是先介绍MySQL的操作,然后再深入了解其底层原理,那就开始吧 目录 1.数据库相关概念2.MySQL数据模型3.SQL语法3.1 通用语法3.2 SQL语法分类3.3 DDL语句3.3.1数据库…

python读取与写入tif图片的完整信息

一、导入gdal包 在anconda环境下: conda install gdal 在其他环境下,去这个网站下载gdal包,直接使用pip install gdal是不行的 注意: 对于liunx用户,建议使用conda安装,对于win用户两者都可以。 使用方…

ChatGPT提示词工程(一):Guidelines准则

目录 一、说明二、安装环境三、Guidelines准则一:写出明确而具体的说明方法1:使用分隔符清楚地表示输入的不同部分方法2:用结构化输出:如直接要求它以HTML或者JSON格式输出方法3:请模型检查是否满足条件方法4&#xff…

深入理解计算机系统1--理解编译器编译的过程

前言 大家在学习C语言的时候,相信对编译器这个词并不会感到陌生。我们也会知道编译器编译的过程是:预处理-》编译-》汇编-》链接。这篇文章主要介绍这四个过程中,编译器究竟做了那些工作,它是如何让一份高级程序转换成机器语言的…

[EDA]AMP®-Parkinson‘s Disease Progression Prediction

​ 翻译自:AMP - EDA Models 1.数据集观察 加载四个excel文件 import pandas as pd train_clinical_data pd.read_csv(input/train_clinical_data.csv) train_peptides pd.read_csv(input/train_peptides.csv) train_protiens pd.read_csv(input/train_prote…

蓝桥杯算法竞赛系列第四章——二分算法

欢迎回到:遇见蓝桥遇见你,不负代码不负卿! 目录 引入:二分查找 题目描述 题解 代码执行 复杂度分析 例题一:搜索插入位置 题目描述 题解 代码执行 复杂度分析 例题二:寻找峰值 题目描述 题解 …

【五一创作】python 基础系列篇:八、熟练掌握推导式

python 基础系列篇:八、熟练掌握推导式 推导式特殊的元组推导式 推导式机制玩转推导式小结 推导式 在python提供的各种语法糖中,老顾最青睐的就是这个推导式,他大大减少了代码的书写量。 比如一个正常的,生成长度为5的列表&…

红黑树的概念与实现

目录 ​一、红黑树的概念 1.什么是红黑树 2.红黑树满足的性质 3.红黑树存在的意义 二、红黑树的实现 1.类的构建 2.插入函数 (1)插入一个节点 (2)调整节点 (3)旋转 三、红黑树的检验 一、红黑树…

okio篇2-RealBufferedSource

上一篇讲过,okio只有两个概念,source和sink。source对应InputStream,即负责将数据读出,是一个输出方(所以只有source.read方法)。sink对应outputStream,负责获取数据写入,是一个写入…

RT-Thread Nano在keil Simulator中的仿真

目的:使用STM32CubeMX生成包含RT-Thread Nano内核和FinSH控制台的keil工程,在没有硬件开发板的情况下,通过keil Simulator来运行系统,并通过SHELL来与系统进行交互。 一、使用STM32CubeMX生成RT-Thread Nano工程 官方文档已经说…

C++标准库 -- 动态内存 (Primer C++ 第五版 · 阅读笔记)

C标准库 --动态内存 (Primer C 第五版 阅读笔记) 第12章 动态内存------(持续更新)12.1、动态内存与智能指针12.1.1、shared_ptr类12.1.2、直接管理内存12.1.3、shared_ptr和new结合使用12.1.4、智能指针和异常12.1.5、unique_ptr12.1.6、weak_ptr 12.2、动态数组1…

网络通信之网络层与数据链路层

文章目录 讲在前面网络层网络层概述IP协议格式网段划分公有IP、私有IP、特殊IP理解路由 数据链路层MAC地址以及MAC帧(以太网帧)MTU协议MTU对IP和TCP协议的影响ARP协议及其作用 涉及到的相关协议DNS协议(应用层)NAT与NAPT协议 总结…

BEV (0)---DETR

1 DETR 1.1 DETR处理流程 1.1.1 将图像输入给Backbone获得图像特征与位置编码 ①. 对给定的输入图像通过resnet进行特征提取,最终得到特征图C5∈RBx2048xhxw,其中h、w为输入图像尺寸得1/32。随后再用一层11卷积压缩一下通道,得到特征图P5∈RBx256xhxw。…

jvm调优策略

jvm调优主要是内存管理方面的调优,包括各个代的大小,GC策略等。 代大小调优 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物…

数据结构学习记录——什么是堆(优先队列、堆的概念、最大堆最小堆、优先队列的完全二叉树表示、堆的特性、堆的抽象数据类型描述)

目录 优先队列 若采用数组或链表实现优先队列 数组 链表 有序数组 有序链表 总结 若采用二叉搜索树来实现优先队列 最大堆 堆的概念 优先队列的完全二叉树表示 堆的两个特性 结构性 有序性 【例】最大堆和最小堆 【例】不是堆 堆的抽象数据类型描述 优先队列…

安排超市 -- BFS分割搜索

4.安排超市 给定一个n*n的地图。地图是上下左右四联通的,不能斜向行走: *代表障碍,不可通行。 .代表路,可以通行。 #代表房子。房子也是可以通行的。 小红现在需要在一些地方安排一些超市(不能安排在障碍物上&#xf…

山东专升本计算机第七章-计算机网络基础

计算机网络基础 计算机网络系统 考点 6 计算机网络硬件 主体设备 • 称为主机 • 一般可分为中心站(又称服务器)和工作站(客户机) 连接设备 • 网卡 • 工作在数据链路层 • 网卡又称网络适配器,是连接主机和网…

【C++初阶】引用

一.概念 引用就是取别名,在语法上它不会开空间,而是和它引用的变量共用同一块空间。对引用的操作也就是对原来变量的操作。就像现实生活中给人取外号一样,不管是喊外号还是本名,指的都是那个人。 二.引用特性 1.引用类型必须和引用…

Java8 新特性讲解

一、Lambda表达式 Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。 二、函数式接口 &#…

【网课平台】Day15.Devops:持续集成与持续交付

文章目录 一、Devops1、什么是Devops2、什么是CI/CD3、Devops方案参考 二、人工部署1、项目打jar包2、生成镜像、创建容器 三、自动化部署1、代码提交到git2、修改pom.xml文件3、前端部署 一、Devops 1、什么是Devops 一个软件的生命周期包括:需求分析阶、设计、开…