PHP ffmpeg exec返回null
我试图通过一个PHP exec调用运行ffmpeg,我已经调试了一段时间,并查看了这里的许多响应,但仍然没有找到任何答案 我的电话是: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){} 我还尝试了
$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,它将列出配置。用