PHP ffmpeg exec返回null

PHP ffmpeg exec返回null,php,ffmpeg,exec,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){} 我还尝试了

我试图通过一个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\u exec($cmd)
,它返回
NULL

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

PHP未在安全模式下运行

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

ffmpeg在命令行中执行良好

我正在运行WindowsXP、IIS和PHP5.3

编辑:

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


我已经将PHP内存限制增加到1024-不走运。

我现在可以工作了-我想可能有几个问题:

原来
$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有点占用内存,因此也值得检查内存。

exec()的第二个参数是
返回值
,而不是
stderr
。返回值为1意味着它出错。我不知道为什么在$stdout中看不到错误输出。换句话说,ffmpeg只写入stderr而不是stdout?命令不返回null,它将列出配置。用$cmd='ffmpeg 2>&1';