当前位置:   article > 正文

Mac OS上使用ffmpeg的“血泪”总结_mac ffmpeg

mac ffmpeg

标题真不是夸张,这几天在整理视频相关的处理流程,为了获得一些性能数据,打算在自己的MacBook Pro 上面装ffmepg,这一折腾4、5天就过去了。有些问题,在解决之后就豁然开朗了,没有解决之前,真的是百思不得其解,中间就好像隔着一层纱一样。现在将这几天的经历记录下来,一是方便自己后面查看,二是希望节省大家的时间。

我的Mac OS版本是macOS Catalina 10.15.1,Xcode版本是11.1,安装了Command Line Tools for Xcode 11 ,处理器是2 GHz 四核Intel Core i7,内存是8 GB 1600 MHz DDR3。

首先需要说明一下,网上有些资料可能是很久之前写的,对应的Mac OS版本也比较早,以前能用的步骤的,现在可能就不行了。下面列举几个在我的机器上面不适用的场景,若有其他人也遇到了,可以参照一下,有时候可以根据命令的执行错误信息去Google或者百度从而找到解决办法,有时候也可能会被带到沟里面去(我就是被带到沟里好几天了):

  • 直接用如下brew命令安装ffmpeg,并用--with-带上若干关联的编码解码库,这样是不行的,若执行则会得到错误信息“invalid option: --with-chromaprint”。
brew install ffmpeg --with-chromaprint --with-fdk-aac --with-fontconfig --with-freetype --with-frei0r --with-game-music-emu --with-libass --with-libbluray --with-libbs2b --with-libcaca --with-libgsm --with-libmodplug --with-librsvg --with-libsoxr --with-libssh --with-libvidstab --with-libvorbis --with-libvpx --with-opencore-amr --with-openh264 --with-openjpeg --with-openssl --with-opus --with-rtmpdump --with-rubberband --with-sdl2 --with-snappy --with-speex --with-tesseract --with-theora --with-tools --with-two-lame --with-wavpack --with-webp --with-x265 --with-xz --with-zeromq --with-zim
  • 用如下命令尝试将input_file_name.mp4视频从mpeg4制式(视频是x264编码,音频是aac编码)转成webm制式(视频是vp9编码,音频是opus编码),是不行的,若执行则会得到错误信息“Unknown decoder 'libx264'”、“Unrecognized option 'y '.”,根据此错误信息去找解决方案同样会被带到沟里面去。
  1. ffmpeg -y -c:a libfdk_aac -c:v libx264 -i input_file_name.mp4 -c:v libvpx-vp9 -c:a libvorbis output_file_name.webm
  2. ffmpeg -y -acodec libfdk_aac -vcodec libx264 -i input_file_name.mp4 -c:v libvpx-vp9 -c:a libvorbis output_file_name.webm

官方文档一般会有人去维护,出错或者不兼容的可能性较低,出现问题后,一般首先需要想到去官方文档(MacOS ffmpeg 官方文档)查看解决办法。我是搜了一下网上的参考资料,后面被折腾了好几天,实在没有办法了,又去仔细看了一下官方文档。上面介绍了三种方法,一是通过HomeBrew安装,二是通过编译好的静态库,三是通过ffmpeg源码安装。本文重点将通过HomeBrew的方式进行安装,且经过实践确定是可行的,具体如下:

第一步,安装Homebrew

Mac里面常用的命令行包管理工具,通过如下命令执行安装Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

第二步,安装ffmpeg

执行

brew install ffmpeg

或者执行都可以,唯一区别是下面语句安装的是最新版本。

brew install ffmpeg --HEAD

两者都会检测ffmpeg的依赖包并自动安装上,请耐心等待,可以用ps -ef | grep ffmpeg 看一下最新进展。上面两步都没有问题,好多博客也都这么写的,但是需要看清官方的下面表述“Since v2.0, Homebrew does not offer options for its core formulae anymore. Users who want to build ffmpeg with additional libraries (including non-free ones) need to use so-called taps from third party repositories. These repositories are not maintained by Homebrew”,简单说一下就是“从brew的2.0版本开始,brew不再提供针对ffmepg的options的一键关联安装了,如果需要将options和ffmpeg关联起来的话,需要采用第三方的options仓库”。我的brew版本如下,所以仅仅通过上面两步来安装ffmepg,是关联不了诸如x264,vp9等视频编解码器的。如果有同学也是这种情况,需要注意一下。

  1. Homebrew 2.1.15
  2. Homebrew/homebrew-core (git revision c10ec; last commit 2019-11-02)
  3. Homebrew/homebrew-cask (git revision bd0e9; last commit 2019-11-02)

第三步,选择一个第三方仓库,安装options、并和ffmepg关联起来。

有两个仓库,分别是homebrew-ffmpegvarenc-homebrew-ffmpeg ,我用的是第一个,有兴趣的同学可以用第二个尝试一下。

1)执行

brew tap homebrew-ffmpeg/ffmpeg

2)执行

brew install homebrew-ffmpeg/ffmpeg/ffmpeg

3)执行如下命令,看此仓库支持哪些options。

brew options homebrew-ffmpeg/ffmpeg/ffmpeg

4)根据第3)步得到的options,替换下面命令中的option,然后执行

brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-<option1> --with-<option2> ...

执行如上几个步骤后,就成功的安装好ffmepg及其依赖包,同时将ffmepg和许多编解码库关联起来了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/659841
推荐阅读
相关标签
  

闽ICP备14008679号