如何使用PHP检测视频文件持续时间(以分钟为单位)?

时间:2012-04-06 12:18:11

标签: php video

我试图在用PHP上传之前检测任何视频文件的持续时间 所以,如果不到一分钟,我会拒绝上传。
如果不可能,我怎么能在上传视频后才能做到?

2 个答案:

答案 0 :(得分:14)

您可以使用video duration或getID3

获取ffmpeg

示例

$getID3 = new getID3;
$file = $getID3->analyze($filename);
echo("Duration: ".$file['playtime_string'].
        " / Dimensions: ".$file['video']['resolution_x']." wide by ".$file['video']['resolution_y']." tall".
        " / Filesize: ".$file['filesize']." bytes<br />");

 ob_start();
 passthru("ffmpeg -i working_copy.flv  2>&1");
 $duration = ob_get_contents();
 $full = ob_get_contents();
 ob_end_clean();
 $search = "/duration.*?([0-9]{1,})/";
 print_r($duration);
 $duration = preg_match($search, $duration, $matches, PREG_OFFSET_CAPTURE, 3);
 print_r('<pre>');
 print_r($matches[1][0]);
 print_r($full);

请参阅

http://getid3.sourceforge.net/

http://ffmpeg.org/

How to get video duration, dimension and size in PHP?

get flv video length

由于

:D

答案 1 :(得分:0)

对于那些来看看这个问题的人来说,这是2017年的一个更先进的解决方案

     first download the latest version from the first link above in the accepted answer the (green checkmark)          

     require_once('getid/getid3/getid3.php'); //path to your get id file if you do not include this in your file it will result in an error meaning the code will not work
$file = "sade.mp4"; //what you want extract info from maybe mp3,or mp4 file anything you want to get file size in bytes or time duration
$uuuuu = "videos/"; //path to your video file it could also be music not only video
$getID3 = new getID3; //initialize engine
$ThisFileInfo = $getID3->analyze($uuuuu.$file);
getid3_lib::CopyTagsToComments($ThisFileInfo);
echo '<pre>'.htmlentities(print_r($ThisFileInfo, true)).'</pre>';  //use this to print array to pick whatever you like that you want value like playduration, filesize