升级到Mavericks后,ffmpeg无法工作。

13
最近升级到Mavericks 10.9.5后,我的ffmpeg安装出现了问题。
错误信息:
dyld: Library not loaded: /usr/local/lib/libx264.142.dylib
  Referenced from: /usr/local/bin/ffmpeg
  Reason: image not found
Trace/BPT trap: 5

有什么想法吗?我不太熟悉手动编译,我是通过Homebrew安装的ffmpeg。

我尝试卸载并执行以下操作:

brew install ffmpeg --HEAD
brew install ffmpeg --build-from-source

但它返回一个"./configure"错误

==> ./configure --prefix=/usr/local/Cellar/ffmpeg/2.4.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample
If you think configure made a mistake, make sure you are using the latest
version from Git.  If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "config.log" produced by configure as this will help
solve the problem.

READ THIS: https://github.com/Homebrew/homebrew/wiki/troubleshooting

These open issues may also help:
gpac 0.5.0 doesn't build against ffmpeg 2.4.1 (https://github.com/Homebrew/homebrew/issues/32978)

1
你能发布 brew doctor 的输出吗?执行 brew reinstall x264 有帮助吗? - Tim Smith
4个回答

25

经过一些尝试后,我的解决方案。

brew uninstall ffmpeg
brew doctor

然后它告诉我我的ffmpeg没有链接,我还需要一些依赖项

brew install faac lame xvid
brew doctor

然后它告诉我,我只有一个未连接的物品。

brew install ffmpeg

而且它起作用了。


3
根据你的回答,我刚刚执行了以下命令: brew uninstall ffmpeg faac lame xvid brew cleanup brew install faac lame xvid ffmpeg - danielson317

6
brew upgrade ffmpeg

对我有用

4

我认为这篇文章值得分享,正如James所指出的那样。我曾遇到过类似的问题,并通过查看/lib/local/usr/中库文件的位置来解决我的问题。

dyld: Library not loaded: /usr/local/lib/libx264.142.dylib

$ ls -lsha /usr/local/lib/libx264.* 

在我的情况下,我发现我已经安装了libx264,但是它的版本与ffmpeg所要求的版本不同。我找到了...
/usr/local/lib/libx264.152.dylib 

这是一个到实际安装位置的符号链接。

/usr/local/Cellar/x264/r2854/lib/libx264.152.dylib

请注意,这只是版本号的差异,因此我不得不创建一个符号链接到ffmpeg所需的版本。使用以下命令,我能够在MacOS 10.13上解决这个问题:

sudo ln -s /usr/local/Cellar/x264/r2854/lib/libx264.152.dylib /usr/local/lib/libx264.148.dylib

我所预期的唯一问题是不兼容性问题,例如函数降级(因为我正在使用更新版本),但此类问题并未发生。我希望这也能帮助到其他人。如果您的系统版本与我的不同,您将需要使用可用的确切版本。

当我尝试运行ffmpeg时,会引用我的anaconda安装: dyld: Library not loaded: @rpath/libx264.138.dylib Referenced from: /anaconda3/bin/ffmpeg Reason: image not found所以显然我想添加路径到brew安装的ffmpeg。你发布的最后一行(“sudo ln .......”)是否有帮助,或者我的问题完全不同? - J.D
针对您目前遇到的这个错误,我通过从他们的网站下载一个二进制的ffmpeg来解决了它。 - chrisallick
1
谢谢您的见解!在我的情况下,我深入挖掘了一点,并发现版本不匹配的原因是x265已经被固定,因此它不会升级到ffmpeg所期望的版本。因此,“brew unpin x265”后跟“brew reinstall x265”(也重新安装了ffmpeg),无需符号链接到旧版本即可消除错误。希望这能帮助到某些人! - B. Shefter

-3

对于High Sierra(macOS 10.13),我尝试了chrisallick的答案中卸载ffmpeg的方法,但它并没有解决我的问题。最终我采取了更大的一步,完全删除并重新安装了homebrew。

请自行承担风险。

第1步。卸载Homebrew

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

第2步。安装Homebrew

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

第3步。安装ffmpeg

brew install ffmpeg

显然,如果您选择此选项,则必须重新安装通过homebrew安装的任何其他应用程序。

这种方法在High Sierra上实际上对我有用。可能有更直接的方法,但在有人发布之前,请考虑采取此方法。再次说明,chrisallick的更直接的方法实际上并没有解决我的问题。


1
这太贵了,不应该作为答案发布,或者你应该非常醒目地警告风险。我仍然有同样的问题,但我无法尝试这个。 - Paullo
@Paullo - 我确实解释了后果,并声明其他提出的解决方案对我无效。那么,当唯一的其他提出的解决方案不起作用时,我应该删除实际上对我有用的内容吗?你有更好的解决方案吗? - James T Snell
当我迫切需要解决方案时,我通常会这样做:一旦看到像这样的答案,我就开始复制和粘贴代码,而不阅读大部分细节。但是在这里我没有尝试,因为我看到了“卸载Homebrew”,我知道那是什么意思。如果能够通过与步骤1、2、3相同的方式突出显示警告,那就更好了。 - Paullo
我通过查看 /usr/local/lib/(ls -lsha /usr/local/lib/libx264.*)来解决这个问题。在我的情况下,我注意到我已经安装了libx264,但是与ffmpeg所需的版本不同,因此我必须创建一个符号链接到ffmpeg所需的版本。这个命令在MacOS 10.13上为我解决了这个问题:sudo ln -s /usr/local/Cellar/x264/r2854/lib/libx264.152.dylib /usr/local/lib/libx264.148.dylib。我预计唯一可能出现的问题是不兼容性问题,例如函数过时,但是我没有遇到这种情况,请注意版本号之间的差异不大。 - Paullo
@paulio,当第一步加粗并写着“卸载Homebrew”时,我认为这已经很明显了。如果有人决定尝试而实际上并不想这样做,那么这是他们自己的责任。既然你找到了一个可能的解决方案,你应该将其发布为一个真正的答案。 - James T Snell

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