M1 Mac 原生编译 ffmpeg,突破你的剪辑速度!

原文发布于:M1 Mac 原生编译 ffmpeg,突破你的剪辑速度!,欢迎关注获取最新更新

如果你的是 M1 Mac, 而且你也在使用 ffmpeg,这篇文章你可能需要好好看看。

通常我们在 mac 安装软件的时候都是通过 homebrew 进行安装,但是对于 M1 Mac 来说,如果你使用的是 brew install ffmpeg 安装的,那么 ffmpeg 运行时会使用 rosetta 进行转义,速度可以说是连微软的 surface book 都打不过。

而最佳的解决办法就是,使用 NEON 扩展在你的 M1 Mac 上进行编译 arm 版本,执行的速度比之前的速度可以提高三倍以上,真的不是开玩笑。

有两个办法可以让我们快速使用上 M1 Mac 下编译的 ffmpeg

1. 使用已经编译好的 ffmpeg

打开这个网址:OSXExperts
找到 Download for macOS Apple Solicon ,点击进行下载

如果打不开,或者速度很慢,可以直接点击这个链接进行下载,我已经做了备份。

下载的这个 ffmpeg 是这个网址的大佬已经在他的电脑上编译好,并且可以直接执行的二进制文件。

下载完成之后,我们需要对文件进行一下 SHA 256 校验,当然不校验也没关系。
校验的命令如下:```

shasum -a 256 ffmpeg

得到结果:345107d72ea1142d873842ec85456f7a7e80be5458ae554ac82e3ae2725735dd 表示保证文件确实出自原始作者。

打开终端,然后配置进你的 Mac 环境变量,

vim ~/.zshrc

添加一行, 并加入 PATH 中

export FFMPEG_HOME=/Users/asher/workspace/software/ffmpeg
export PATH=$PATH:$MAVEN_HOME/bin:$FFMPEG_HOME:$JAVA_HOME/bin:$GRADLE_HOME/bin:.

关闭终端重新打开,试试 ffmpeg -version, 可以看到已经有对应的输出。

无法打开?

如果无法打开,可能是因为 Apple Silicon 只能运行已经签名的文件,所以你需要在 ffmpeg 文件的目录执行以下两个命令。

xattr -cr ./ffmpeg
codesign -s - ./ffmpeg

此时用这个版本的 ffmpeg 去转码视频之类的,比之前飞快。

2. 自行编译 ffmpeg

这一部分适用于喜欢折腾的老哥使用,也有算是相当简单的方式,因为已经有大佬给我们做好了脚本。

克隆这个 git 仓库到本地:ffmpeg-apple-arm64-build ,然后在编译前:

  • 需要安装 xcode,可以直接从 App Store 中进行安装。安装之后记得先打开一下同意 apple 之类的协议。

  • 挂梯子,执行的时候会克隆很多外网的第三方依赖库
  • 注册 gitlab,并且添加 sshkey 到你的账号,会有依赖库 freetype 使用到

然后是执行部分,根据这个 ffmpeg-apple-arm64-build 的 readme 文档,推荐我们先随意创建一个目录,然后在这个目录中进行编译

mkdir ffmpeg-compile
cd ffmpeg-compile

接着执行

../path/to/repository/build.sh

期间因为会克隆 git 仓库,速度取决于你的网速,也会有一些奇怪的错误抛出。当发生异常的时候需要先删除这个目录,然后重新来一遍。。。祝你能编译成功!

参考内容

FFMPEG on Apple Sillicon (M1 Mac Mini 8Gb)

M1 (Mac ARM) binary of FFMPEG?

  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    22 引用 • 31 回帖
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    159 引用 • 590 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
融合块、大纲和双向链接
构建你永恒的数字花园
思源笔记是一款本地优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步