我在 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
这篇关于ffmpeg MAMP“dyld:库未加载"错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!