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.