The following is two methods to get the duration either as a colon separated value, or in seconds, of a given media file using FFmpeg.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/**
* Get duration of media file from ffmpeg
* @param $file
* @return bool|string
*/
function getDuration($file){
$dur = shell_exec("ffmpeg -i ".$file." 2>&1");
if(preg_match("/: Invalid /", $dur)){
return false;
}
preg_match("/Duration: (.{2}):(.{2}):(.{2})/", $dur, $duration);
if(!isset($duration[1])){
return false;
}
return $duration[1].":".$duration[2].":".$duration[3];
}
/** * Get duration of media file from ffmpeg * @param $file * @return bool|string */ function getDuration($file){ $dur = shell_exec("ffmpeg -i ".$file." 2>&1"); if(preg_match("/: Invalid /", $dur)){ return false; } preg_match("/Duration: (.{2}):(.{2}):(.{2})/", $dur, $duration); if(!isset($duration[1])){ return false; } return $duration[1].":".$duration[2].":".$duration[3]; }
/**
 * Get duration of media file from ffmpeg
 * @param $file
 * @return bool|string
 */

function getDuration($file){
   $dur = shell_exec("ffmpeg -i ".$file." 2>&1");
   if(preg_match("/: Invalid /", $dur)){
      return false;
   }
   preg_match("/Duration: (.{2}):(.{2}):(.{2})/", $dur, $duration);
   if(!isset($duration[1])){
      return false;
   }
   return $duration[1].":".$duration[2].":".$duration[3];
}
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/**
* Get duration in seconds of media file from ffmpeg
* @param $file
* @return bool|string
*/
function getDurationSeconds($file){
$dur = shell_exec("ffmpeg -i ".$file." 2>&1");
if(preg_match("/: Invalid /", $dur)){
return false;
}
preg_match("/Duration: (.{2}):(.{2}):(.{2})/", $dur, $duration);
if(!isset($duration[1])){
return false;
}
$hours = $duration[1];
$minutes = $duration[2];
$seconds = $duration[3];
return $seconds + ($minutes*60) + ($hours*60*60);
}
/** * Get duration in seconds of media file from ffmpeg * @param $file * @return bool|string */ function getDurationSeconds($file){ $dur = shell_exec("ffmpeg -i ".$file." 2>&1"); if(preg_match("/: Invalid /", $dur)){ return false; } preg_match("/Duration: (.{2}):(.{2}):(.{2})/", $dur, $duration); if(!isset($duration[1])){ return false; } $hours = $duration[1]; $minutes = $duration[2]; $seconds = $duration[3]; return $seconds + ($minutes*60) + ($hours*60*60); }
/**
 * Get duration in seconds of media file from ffmpeg
 * @param $file
 * @return bool|string
 */

function getDurationSeconds($file){
   $dur = shell_exec("ffmpeg -i ".$file." 2>&1");
   if(preg_match("/: Invalid /", $dur)){
      return false;
   }
   preg_match("/Duration: (.{2}):(.{2}):(.{2})/", $dur, $duration);
   if(!isset($duration[1])){
      return false;
   }
   $hours = $duration[1];
   $minutes = $duration[2];
   $seconds = $duration[3];
   return $seconds + ($minutes*60) + ($hours*60*60);
}

4 Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.