I'm trying to run ffmpeg through a PHP exec call, I've been debugging for a while and looked at lot of responses on here, but still not found any answers...
My simplified call is:
$cmd = 'ffmpeg 2>&1';
exec(escapeshellcmd($cmd), $stdout, $stderr);
var_dump($stderr);
var_dump($stdout);
var_dump($cmd);
exit;
My output is $stderr = int(1) and $stdout = array(0) { }
Also I tried shell_exec($cmd)
which returns NULL
.
cmd.exe has permissions set for the IUSR account - e.g. I can run $cmd = 'dir'
and see a directory listing output.
PHP is not running in safe mode.
The ffmpeg.exe is in the same directory as my php file, but I have the same response giving an absolute path to the ffmpeg.exe file in $cmd
.
ffmpeg is executing fine from the command line.
I'm running Windows XP, IIS and PHP 5.3.
EDIT:
If I run 'ffmpeg -h' I get the help commands, which must indicated that ffmpeg is recognised
I've increased the PHP memory limit to 1024 - no luck.
I've now got this working - I think there may have been several issues:
It turns out that
$cmd = 'ffmpeg'
returns null, so it's not a good test!Also running escape shell command on '2>&1' echoes 2^>^&1" - I think this was my original problem.
I've now managed to rea test file using: 'ffmpeg -i SAMPLE.AVI 2>&1'.
Working code:
As noted above ffmpeg is a bit of a memory hog, so it's worth checking memory too.