mac 上的 FFMPEG 和 PHP 不起作用

Posted

技术标签:

【中文标题】mac 上的 FFMPEG 和 PHP 不起作用【英文标题】:FFMPEG and PHP on mac does`t work 【发布时间】:2014-09-16 10:38:26 【问题描述】:

我需要你的帮助。目前我使用 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)

【问题讨论】:

您是否能够以 Web 服务器运行的用户身份从命令行运行 ffmpeg?您的环境和网络服务器的环境可能很容易完全不同。 获取另一个 FFmpeg 二进制文件。 【参考方案1】:

问题与 DYLD_LIBRARY_PATH 被设置为 xampp 库文件夹有关

尝试在执行之前取消设置 exec 之前的任何一个都可以工作

exec('unset DYLD_LIBRARY_PATH ;');
putenv('DYLD_LIBRARY_PATH');
putenv('DYLD_LIBRARY_PATH=/usr/bin');

【讨论】:

我来过这里两次。我一直在寻找最终的解决方案。我尝试将xamppfiles/bin/envvars 更改为DYLD_LIBRARY_PATH="/usr/bin:/Applications/XAMPP/xamppfiles/lib",但它不起作用。它仅在我更改为 /usr/bin 时才有效,但我认为如果没有 xampp lib,某些东西可能会停止工作。

以上是关于mac 上的 FFMPEG 和 PHP 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Mac上的Python pip安装不起作用

mac上的自动制作不起作用

将 CEFPython 并入 Mac 上的 Kivy 应用程序——键盘输入不起作用

当我将视频转换为 mp4 时,PHP FFMPEG 不起作用 [关闭]

FFMPEG RTMP 在 Ubuntu 14.0.4 上的 red5pro 模块中不起作用

IIS 上的 MSSQL 和 PHP 5.3.5 之间的连接不起作用