PHP ffmpeg exec返回null

时间:2012-03-19 12:25:55

标签: php ffmpeg exec

我正在尝试通过PHP exec调用运行ffmpeg,我已经调试了一段时间并在这里查看了很多响应,但仍未找到任何答案......

我的简化电话是:

$cmd = 'ffmpeg 2>&1';

exec(escapeshellcmd($cmd), $stdout, $stderr);

var_dump($stderr);
var_dump($stdout);
var_dump($cmd);
exit;

我的输出是$ stderr = int(1)和$ stdout = array(0){}

我还尝试shell_exec($cmd),返回NULL

cmd.exe具有为IUSR帐户设置的权限 - 例如我可以运行$cmd = 'dir'并查看目录列表输出。

PHP未以安全模式运行。

ffmpeg.exe与我的php文件位于同一目录中,但我有相同的响应,给出了$cmd中ffmpeg.exe文件的绝对路径。

ffmpeg从命令行执行正常。

我正在运行Windows XP,IIS和PHP 5.3。

编辑:

如果我运行'ffmpeg -h',我会收到帮助命令,这些命令必须表明ffmpeg已被识别

我已将PHP内存限制增加到1024 - 没有运气。

1 个答案:

答案 0 :(得分:5)

我现在已经开始工作了 - 我想可能有几个问题:

事实证明$cmd = 'ffmpeg'返回null,所以这不是一个好的测试!

同时在'2>& 1'上运行escape shell命令回应2 ^> ^& 1“ - 我认为这是我原来的问题。

我现在设法使用以下命令测试文件:'ffmpeg -i SAMPLE.AVI 2>& 1'。

工作代码:

$cmd = 'ffmpeg -i SAMPLE.AVI 2>&1';

exec($cmd, $output, $value);

var_dump($output);
var_dump($value);
var_dump($cmd);
exit;

如上所述,ffmpeg有点内存占用,所以值得检查内存。