FFmpeg无法找到编码器libvpx。

52

当我运行时

ffmpeg -y -i test.mov -threads 8 -f webm -aspect 16:9 -vcodec libvpx -deinterlace -g 120 -level 216 -profile 0 -qmax 42 -qmin 10 -rc_buf_aggressivity 0.95 -vb 2M -acodec libvorbis -aq 90 -ac 2 OUTPUT_FILE.webm

它返回一个错误,说 Unknown encoder 'libvpx'

我通过macports安装了libvpx、libvorbis、libogg和ffmpeg。


运行 ffmpeg -v 命令并检查是否使用了 --enable-libvpx 构建。很可能您需要一个不同的构建版本或自己编译它。 - Piotr Praszmo
哦,没有libvpx,有带有libvpx的macport构建吗? - Wiz
4个回答

129

您的macports配置没有使用libvpx进行构建。尝试卸载ffmpeg并使用Homebrew来安装该软件包,而不是使用macports:

brew install ffmpeg --with-libvpx

or

brew reinstall ffmpeg --with-libvpx

那么您的命令应该可以正常工作。


10
我不确定原因,但当我只重新安装了libvpx和libvorbis时,仍然出现了webm错误。然而当我执行了所有这些操作时,它就可以工作了。不确定哪个标志是修复的。brew reinstall ffmpeg --with-fdk-aac --with-ffplay --with-freetype --with-frei0r --with-libass --with-libvo-aacenc --with-libvorbis --with-libvpx --with-opencore-amr --with-openjpeg --with-opus --with-rtmpdump --with-speex --with-theora --with-tools - bryan kennedy
6
--with-libvorbis 也是必需的。 webm 需要使用 vorbis 进行音频压缩。如果您在使用 ffmpeg 时遇到实验编码器警告,还可以将 --with-theora 添加到编译器选项中。 - emrahgunduz
3
不需要使用brew中的新ffmpeg了!只需升级它: brew upgrade ffmpeg - lukyer

8

我不确定是否可以更改Macports的默认配置,但无论如何,您都可以手动完成。

打开终端并cd到您喜欢的目录。在安装之前,请检查您安装了哪个版本的ffmpeg以及其位置。使用which ffmpeg,然后port uninstall ffmpeg,最后再次使用which ffmpeg来验证ffmpeg已经正确卸载。

从以下网址下载源代码:

git clone https://github.com/FFmpeg/FFmpeg ffmpeg

进入ffmpeg目录

cd ffmpeg

在进行配置和编译时,请使用您的配置进行“./configure --help”命令获取可能的配置信息。

./configure --extra-cflags=-I/opt/local/include --extra-ldflags=-L/opt/local/lib --enable-gpl --enable-version3 --enable-nonfree --enable-libvpx --enable-libvorbis

我建议添加额外的c/ld标志,因为/opt/local/是默认的macport安装目录。

制作、安装ffmpeg

make
sudo make install

在这些步骤中有很多备选方案,如果您遇到任何问题,请在评论中提出。


这不是抱怨,对你的回答点个赞。但现在使用Homebrew会让你的生活变得更加轻松! - awenkhh
1
我个人在本地开发时使用Homebrew,但是对于我的生产/部署chef脚本,我仍然手动编译FFmpeg。 - EladG
如果您认为配置出错了,请确保使用的是Git上的最新版本。如果最新版本失败,请将问题报告给ffmpeg-user@ffmpeg.org邮件列表或irc.freenode.net上的IRC #ffmpeg频道。请包括由configure生成的日志文件“config.log”,这将有助于解决问题。 - Ganesh Shrivas
这个答案是4年前给出的,现在请按照./configure --help提供的编译帮助进行编译,或者使用像homebrew这样的软件包构建工具。 - EladG

1
由于在OS X上构建ffmpeg需要所有依赖项,这是一场噩梦。 它将花费您数天时间才能正确地构建它。
不要浪费时间了。
相反,只需从https://www.ffmpeg.org/download.html下载静态二进制文件,并将其复制到/usr/local/bin中。

请务必将鼠标悬停在苹果标志上,以便页面显示OSX下载(当我第一次进入该页面时,我并不知道这一点)。 - ZomoXYZ
3
使用Homebrew构建时,可通过选项 --with-libvpx--with-libvorbis 实现无缝构建。整个过程大约需要5分钟。 - david cako

0
一些人建议你可以直接使用ffmpeg.org的静态二进制文件,但值得注意的是,在某些情况下,静态二进制文件与共享库二进制文件相比可能存在细微差异。
例如,在MacOS上,来自MacPorts的共享ffplay会使用显示器的色彩配置文件(如果你没有明确设置,它会尝试使用EDID中的色彩主要和白点)来校正颜色,需要时进行限制。但来自evermeet.cx的静态版本则不会,这可能导致颜色略有偏差,让你误以为视频的颜色有问题,实际上并非如此。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接