我需要你的帮助.目前我使用的是Mac OS X 10.9.4和xampp apache 1.8.3-3.我需要使用ffmpeg(版本3.2)通过php exec()转换视频文件,但我无法使其工作.我做了一些运行终端命令行的测试,系统正常运行.只在php中它不起作用.
ffmpeg是通过brew编译和安装的.
我运行了以下测试:
exec("/usr/local/Cellar/ffmpeg/2.3/bin/ffmpeg -i /Applications/XAMPP/xamppfiles/htdocs/teste/trailer.mp4 /Applications/XAMPP/xamppfiles/htdocs/teste/trailer2.flv 2>&1", $o, $v);
var_dump($o);
var_dump($v);
并得到以下:
array(4) {
[0]=> string(51) "dyld: Symbol not found: __cg_jpeg_resync_to_restart"
[1]=> string(82) "Referenced from: /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO"
[2]=> string(63) "Expected in: /Applications/XAMPP/xamppfiles/lib/libJPEG.dylib"
[3]=> string(67) " in /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO" } int(133)
解决方法:
问题与DYLD_LIBRARY_PATH被设置为xampp libraries文件夹相关联
尝试在exec之前解决这个问题
exec之前的任何一个都可以工作
exec('unset DYLD_LIBRARY_PATH ;');
putenv('DYLD_LIBRARY_PATH');
putenv('DYLD_LIBRARY_PATH=/usr/bin');