ffmpeg MAMP“dyld:库未加载"错误

2021-12-26 00:00:00 macos ffmpeg php

我在 Mac OSX 10.7.3 上通过 PHP 的 exec() 命令在 MAMP 中使用 ffmpeg,我设置了一个绝对路径来调用 ffmpeg,例如

I am using ffmpeg on Mac OSX 10.7.3 in MAMP through PHP's exec() command, I have an absolute path set to call ffmpeg, e.g.

/opt/local/bin/ffmpeg -i "/sample.avi"

但我收到以下错误 -

dyld: Library not loaded: /opt/local/lib/libjpeg.8.dylib  Referenced from: /opt/local/lib/libopenjpeg.1.dylib  Reason: Incompatible library version: libopenjpeg.1.dylib requires version 13.0.0 or later, but libJPEG.dylib provides version 12.0.0

注意ffmpeg 是通过 Macports 安装的.

N.B. ffmpeg was installed through Macports.

它从命令行工作.

怎么办?

编辑

我重新打开了这个 - 最初认为 shell_exec() 解决了这个问题,但实际上它应该以不同的方式调用 - 我直到今天进一步调查才意识到.这是我使用 shell_exec 的代码,但仍然出现上述错误:

I've reopened this - originally thought shell_exec() solved the issue, but infact it should be called differently - and I didn't realise until investigating further today. Here is my code using shell_exec and still giving the error above:

 $cmd = '/opt/local/bin/ffmpeg -h';
 $cmd = escapeshellcmd($cmd) . ' 2>&1';
 $output = shell_exec($cmd);
 var_dump($output);

推荐答案

问题是 DYLD_LIBRARY_PATH 是在 MAMP 中设置的,我已经通过 macports 安装了 ffmpeg.

The problem is that the DYLD_LIBRARY_PATH is set in MAMP and I've installed ffmpeg via macports.

这可能不是最好的解决方法,但它让我现在就开始运行:

This might not be the best fix but it has me up and running for now:

/Applications/MAMP/Library/bin/envvars 文件中,注释以下几行:

In the /Applications/MAMP/Library/bin/envvars file and comment the following lines as below:

#DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"
#export DYLD_LIBRARY_PATH

并重启Apache

相关文章