5

I'm running the ffmpeg command within PHP's shell_exec() to convert several videos in a list. Is there anyway to detect if an error happened while the video was being converted (or atleast verify it fully completed the conversion)?

I don't want to stop converting other videos if an error happens, just the ability to record the error.

<?php
    shell_exec('ffmpeg -i downloads/flv/file1.flv -vcodec libvpx -acodec libvorbis downloads/webm/file1.webm');

    if(error) {
     //run a command here to report the error (ie. MySQL or email)
    }
?>
floatleft
  • 6,243
  • 12
  • 43
  • 53

2 Answers2

14

Capture the exit code with another system call function like exec:

exec('ffmpeg ...', $output, $return);

if ($return != 0) {
    // an error occurred
}

Any decent utility will exit with a code other than 0 on error.

deceze
  • 510,633
  • 85
  • 743
  • 889
  • Or check if ($return != 1). 1 is an error and 0 is no error exit code. You can debug in the Unix CLI directly with echo "$?" after executing your command. – Stephan Kristyn Aug 27 '12 at 13:36
  • 1
    Well, `0` means "all green", while *anything other than `0`* means "error". There are more error codes than just `1`. I don't know if `ffmpeg` in particular uses anything besides `0` and `1`. – deceze Aug 27 '12 at 13:38
-2
$return=shell_exec('ffmpeg ...');

if ($return) { //look at what it returns do what you will with the data

}