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

如何使用PHP检测视频文件的持续时间(分钟)?,php,video,Php,Video,在用PHP上传任何视频文件之前,我试图检测其持续时间 例如,如果时间少于一分钟,我将拒绝上传。 如果不可能,上传视频后我该怎么做???您可以使用ffmpeg或getID3获取视频持续时间 范例 $getID3 = new getID3; $file = $getID3->analyze($filename); echo("Duration: ".$file['playtime_string']. " / Dimensions: ".$file['video']['resol

在用PHP上传任何视频文件之前,我试图检测其持续时间
例如,如果时间少于一分钟,我将拒绝上传。

如果不可能,上传视频后我该怎么做???

您可以使用
ffmpeg
或getID3获取
视频持续时间

范例

$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 />");
$getID3=新的getID3;
$file=$getID3->analyze($filename);
echo(“持续时间:.$file['playtime\u string']。
“/Dimensions:“.$file['video']['resolution\u x'].”宽“.$file['video']['resolution\u y'].”高”。
“/Filesize:“.$file['Filesize'].”字节
”;

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,})/”;
打印(持续时间);
$duration=preg_match($search,$duration,$matches,preg_OFFSET_CAPTURE,3);
印刷品(“”);
打印($matches[1][0]);
印刷版(全版);;
请看

谢谢


:D

对于前来查看此信息的人来说,这是2017年更先进的解决方案

首先从接受答案中的第一个链接下载最新版本(绿色复选标记)
require_once('getid/getid3/getid3.php')//get id文件的路径如果文件中未包含此路径,则会导致错误,这意味着代码将无法工作
$file=“sade.mp4”//您想从mp3或mp4文件中提取什么信息?您想获取的任何文件大小(以字节或持续时间为单位)
$uuuu=“视频/”//视频文件的路径也可以是音乐,而不仅仅是视频
$getID3=新的getID3//初始化引擎
$ThisFileInfo=$getID3->analyze($uuuu.$file);
getid3_lib::CopyTagsToComments($ThisFileInfo);
echo'.htmlentities(print_r($ThisFileInfo,true))。'//使用此选项打印数组,以选择您想要的值,如播放持续时间、文件大小

很抱歉,没有。。您需要先上载文件:D@Baba上传文件后我该怎么做呢?嗯,我不太清楚视频,但对于音频,它是有效的。试试getID3。有一些类可以用来获取基本的视频数据。如果你使用基于flash的上传程序,可以在上传前检测文件大小。可能对你有用,如果你认为只是做一个彻底的猜测对你有用,可能是他说他在上传之前需要这个的复制品。谢谢:请看他的评论
@Baba,上传文件后我该怎么做艾曼·吉坦6分钟前
@kommradHomerwow。我必须先阅读每一条评论,然后再评论我的不作为ashamed@kommradHomer,如果我能在上传之前完成这项工作,那就太好了:)你可以通过使用基于flash的上传器在上传之前检查文件大小来进行广泛猜测。实际上,如果你试图避免使用小文件,那么问题是什么?让他们加载小文件,这不是一个很大的负担。如果你像我们通常做的那样试图逃离大文件,那将是一个负担。
 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);
     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