我通过 PHP 的 exec()
命令在 MAMP 的 Mac OSX 10.7.3 上使用 ffmpeg,我设置了调用 ffmpeg 的绝对路径,例如
/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 安装的。
它从命令行运行。
怎么办?
编辑
我已经重新打开它 - 最初认为 shell_exec()
解决了这个问题,但实际上它应该被不同地调用 - 直到今天进一步调查我才意识到。这是我使用 shell_exec 的代码,但仍然出现上述错误:
$cmd = '/opt/local/bin/ffmpeg -h';
$cmd = escapeshellcmd($cmd) . ' 2>&1';
$output = shell_exec($cmd);
var_dump($output);
最佳答案
问题是 DYLD_LIBRARY_PATH 是在 MAMP 中设置的,我已经通过 macports 安装了 ffmpeg。
这可能不是最好的解决方案,但它让我现在可以正常运行:
在 /Applications/MAMP/Library/bin/envvars
文件中,注释以下行:
#DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"
#export DYLD_LIBRARY_PATH
并重启Apache
关于php - ffmpeg MAMP "dyld: Library not loaded"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10107671/