From the PHP documentation:
The output from the executed command or NULL if an error occurred or
the command produces no output.
Note: This function can return NULL both when an error occurs or the
program produces no output. It is not possible to detect execution
failures using this function. exec() should be used when access to the
program exit code is required.
So either your program is failing, or it is successful but there is no output. Use exec
instead of shell_exec
to help you differentiate between these two cases. exec
returns an exit code - if it's 0, it means success, and non-zero means fail.
exec('C:\ffmpeg\bin\ffmpeg.exe -i D:\wamp\www\test\demo.mov -f image2 -vframes 1 D:\wamp\www\test\test.jpg', $output, $exit_code);
var_dump($output);
var_dump($exit_code);