PHP ffmpeg exec returns null


PHP ffmpeg exec returns null

我正试图通过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){}

我还尝试了返回NULLshell_exec($cmd)

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

PHP没有在安全模式下运行。

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

ffmpeg在命令行中执行良好。

我运行的是Windows XP、IIS和PHP 5.3。

编辑:

如果我运行"ffmpeg-h",我会得到帮助命令,这必须表明ffmpeg是可识别的

我已经将PHP的内存限制增加到1024——运气不好。

我现在已经处理好了-我认为可能有几个问题:

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

还在'2>&1'回声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有点占用内存,因此也值得检查内存。