Mac M1安装编译FFmpeg教程

打印 上一主题 下一主题

主题 827|帖子 827|积分 2481

本篇介绍的是Mac安装FFmpeg的教程,该教程是为进行音视频的开发学习作准备的,很多时间必要看源码调试学习,若只为了认识使用ffmpeg、ffplay、ffprobe等下令,建议直接使用brew install ffmpeg安装稳定版本。

  
一、安装Homebrew

Homebrew是MacOS(或 Linux)的软件包管理器,可以说是神器了。用于软件包的安装、更新、卸载、搜刮等等。
  1. #需要梯子
  2. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
复制代码
没有梯子的使用国内,可以参考一下其他博客的方法,由于要编译ffmpeg会装比较多的库,推荐用国内镜像
  1. #使用检验
  2. brew -v
复制代码
二、安装FFmpeg

这里并没有直接使用brew install ffmpeg 安装是由于后续想用源码调试。
1.官网下载



  • 最新稳定版本

  • 其他版本

2.使用git安装

使用git安装源码比较方便版本切换,推荐此方法
  1. git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
复制代码
检察远端的分支
  1. cd ffmpeg &&  git branch -r
复制代码
拉取远端分支到本地 - 将来想要切换分支比较方便
  1. git checkout -b release/7.0 origin/release/7.0
复制代码
接下来使用brew进行安装编译必要的库,建议一个一个下
  1. brew install automake
  2. brew install fdk-aac
  3. brew install lame
  4. brew install libass
  5. brew install libtool
  6. brew install libvorbis
  7. brew install libvpx
  8. brew install libvo-aacenc
  9. brew install opencore-amr
  10. brew install openjpeg
  11. brew install opus
  12. brew install speex
  13. brew install texi2html
  14. brew install x264
  15. brew install x265
  16. brew install xvid
  17. brew install yasm
  18. brew install freetype
  19. brew install pkg-config
  20. brew install shtool
  21. brew install theora
  22. brew install sdl2
  23. brew install aom
  24. brew install aribb24
  25. brew install dav1d
  26. brew install fontconfig
  27. brew install libbluray
  28. brew install libgsm
  29. brew install openh264
  30. brew install libmodplug
  31. brew install snappy
  32. brew install libsoxr
  33. brew install two-lame
  34. brew install libvidstab
  35. brew install zimg
  36. brew install zmq
复制代码
配置编译信息 - 可以参考官网这部门的编译

  1. ./configure --prefix=/usr/local/ffmpeg --extra-cflags="-I/opt/homebrew/include" --extra-ldflags="-L/opt/homebrew/lib" --extra-cflags="-I/usr/local/include" --extra-ldflags="-L/usr/local/lib" --enable-avisynth --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --disable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-static --enable-shared  --enable-fontconfig --enable-libaom --enable-libbluray --enable-libdav1d --enable-libgsm --enable-libharfbuzz --enable-libmodplug --enable-libmysofa --enable-libopenh264 --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libwebp --enable-libx265 --enable-libxavs --enable-libxml2 --enable-libzimg --enable-libzmq --enable-libzvbi --enable-openssl
  2. -------------------------------------------------------------------------------------------
  3. --prefix=/usr/local/ffmpeg: 这部分指定编译的时候指定程序存放路径,这个路径根据自己
  4. 以下在编译过程中传递给编译器和链接器的选项,确保编译器和链接器能找到必要的库和头文件
  5. homebrew安装的会存放在这个地方,M芯片的库放在/opt/homebrew/lib
  6. --extra-cflags="-I/opt/homebrew/include"
  7. --extra-ldflags="-L/opt/homebrew/lib"
  8. --extra-cflags="-I/usr/local/include"
  9. --extra-ldflags="-L/usr/local/lib"
复制代码
遇到的问题:

  • ERROR: avisynth/avisynth_c.h avisynth/avs/version.h not found
    1. 安装地址:https://github.com/AviSynth/AviSynthPlus/releases
    复制代码

  • ERROR: libxavs not found

    1. 下载文件: https://sourceforge.net/p/xavs/code/HEAD/tree/
    2. 解压后:cd ./xavs-code-r55-trunk
    3. Intel结构运行: ./configure --prefix=/usr/local --host=x86_64-darwin --disable-asm
    4. arm架构运行: ./configure --prefix=/usr/local --host=arm-darwin --disable-asm
    5. # 编译失败不管什么情况运行先运行清除
    6. make clean
    7. make && sudo make install
    复制代码
  • ERROR: lib_amrwbenc not found

    1. 安装地址: https://sourceforge.net/projects/opencore-amr/files/vo-amrwbenc/vo-amrwbenc-0.1.3.tar.gz/download
    2. 解压后: cd ./vo-amrwbenc-0.1.3
    3. ./configure --prefix=/usr/local --disable-shared
    4. make && sudo make install
    复制代码
  • ERROR: libtwolame not found
    1. brew install two-lame
    复制代码
  • ERROR: libmysofa not found

    1. git clone https://github.com/hoene/libmysofa.git
    2. cd ./libmysofa/build
    3. cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTS=OFF ..
    4. make && sudo make install
    复制代码
  • ERROR: shine not found using pkg-config

    1. git clone https://github.com/toots/shine.git
    2. cd ./shine
    3. ./bootstrap
    4. ./configure --prefix=/usr/local --disable-shared
    5. make && sudo make install
    复制代码
  • ERROR: zvbi-0.2 not found using pkg-config

    1. 下载地址: https://sourceforge.net/projects/zapping/files/zvbi/
    2. 解压后: cd ./zvbi-0.2.35
    3. ./configure --prefix=/usr/local --disable-shared
    4. make && sudo make install
    复制代码
3. 编译

  1. #回到克隆下来的ffmpeg的目录
  2. cd ./ffmpeg
  3. # 根据自己的电脑最大逻辑CPU编译,比如我电脑最大是8
  4. make -j8
  5. sudo make install
  6. # 此时运行成功后,前面配置--prefix=/usr/local/ffmpeg 编译成功后会在/usr/local/ffmpeg找到,剩下全局配置
复制代码
4.全局配置

  1. vim ~/.zshrc
  2. export PATH=${PATH}:/usr/local/ffmpeg/bin
  3. source ~/.zshrc
复制代码
5.检验

  1. ffmpeg -version
复制代码
  1. ffplay xxx.mp4
复制代码

参考文档: https://segmentfault.com/a/1190000043925577

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

欢乐狗

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表