我在MAMP中通过PHP的exec()
命令在Mac OSX 10.7.3上使用ffmpeg ,我有一个绝对路径设置来调用ffmpeg,例如
/opt/local/bin/ffmpeg -i "/sample.avi"
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误 -
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
Run Code Online (Sandbox Code Playgroud)
NB ffmpeg是通过Macports安装的.
它可以从命令行运行.
该怎么办?
编辑
我已经重新开放这一点-原以为shell_exec()
解决了问题,但INFACT应该叫不同的-我不知道直到今天进一步调查.这是我的代码使用shell_exec并仍然给出上面的错误:
$cmd = '/opt/local/bin/ffmpeg -h';
$cmd = escapeshellcmd($cmd) . ' 2>&1';
$output = shell_exec($cmd);
var_dump($output);
Run Code Online (Sandbox Code Playgroud)
ben*_*t_w 30
问题是在MAMP中设置了DYLD_LIBRARY_PATH,我通过macports安装了ffmpeg.
这可能不是最好的解决办法,但它让我现在正在运行:
在/Applications/MAMP/Library/bin/envvars
文件中注释以下行:
#DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"
#export DYLD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)
并重启Apache