Unknown encoder ‘libmp3lame

环境: macos m1 , python3.10.x

背景

做视频切片, 使用moviepy 中VideoFileClip进行截取视频。 报错:

 Unknown encoder 'libmp3lame'
 
 The audio export failed because FFMPEG didn't find the specified codec for audio encoding (libmp3lame). Please install this codec or change the codec when calling to_videofile or to_audiofile. For instance for mp3:

解决思路

该问题表示, FFMPEG 没有关联上 libmp3lame。
一般解决思路:
1、安装lame
下载 lame-3.99.5.tar.gz , 然后安装

cd lame
./configure
make 
make install

但是我在该步骤中出现错误:

checking build system type... configure: error: /bin/sh ./config.sub -apple-darwin22.3.0 failed
configure: WARNING: cache variable ac_cv_build contains a newline

看了半天, 没搞定。

2、安装ffmpeg

 git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
 ./configure --enable-libmp3lame
make
make install
ffmpeg -version

configure时需要添加 --enable-libmp3lame

由于我在第一步就卡住了。该方法不适合我。
后来采用以下方法解决:

brew install lame
brew install ffmpeg
ffmpeg  -version

结果如下图:
在这里插入图片描述

brew link --overwrite ffmpeg
ffmpeg  -version

在这里插入图片描述
可以看到前后ffmpeg中configuration变化, 后者已经跟–enable-libmp3lame 关联了。

参考:
https://gist.github.com/zlargon/2a115e918bc17c05f4abb2f07976b4fe
https://stackoverflow.com/questions/53370739/error-audio-conversion-failed-unknown-encoder-libmp3lame