1.安装ffmpeg
2.调用代码
function getMate($fileUrl){
echo $fileUrl;
echo "<br>";
exec('D:\tools\ffmpeg-2022-05-29-git-a7e0997324-full_build\bin\ffprobe.exe -loglevel quiet -show_format -show_streams '.$fileUrl.' -print_format json 2>&1',$output,$return_val); //json
//echo $output;die;
$str = '';
foreach ($output as $value) {
$str .=$value;
}
$obj = json_decode($str);
$stream = $obj->streams;
$avg_frame_rateArr = explode('/', $stream[0]->avg_frame_rate);
$avg_frame_rate = floor(($avg_frame_rateArr[0]/$avg_frame_rateArr[1])*10)/10;
$avg_frame_rateArr1 = explode('/', $stream[1]->avg_frame_rate);
$avg_frame_rate1 = floor(($avg_frame_rateArr1[0]/$avg_frame_rateArr1[1])*10)/10;
//dump($stream);
$duration = $stream[0]->duration>$stream[1]->duration?$stream[0]->duration:$stream[1]->duration;
$codec = strtolower($stream[0]->codec_name) == 'h264'? strtolower($stream[0]->codec_name):strtolower($stream[1]->codec_name);
$frameRate = $avg_frame_rate > $avg_frame_rate1?$avg_frame_rate:$avg_frame_rate1;
$channels = $stream[0]->channels>$stream[1]->channels?$stream[0]->channels:$stream[1]->channels;
$width = $stream[0]->width>$stream[1]->width?$stream[0]->width:$stream[1]->width;
$height = $stream[0]->height>$stream[1]->height ?$stream[0]->height:$stream[1]->height;
$bit_rate = $stream[0]->bit_rate> $stream[1]->bit_rate?$stream[0]->bit_rate:$stream[1]->bit_rate;
$ext = array(
'duration'=>strval(floor($duration)*10000/10000), //时长
'codec'=>strval($codec),
'frameRate'=>(string)$frameRate, //频帧速率
'channels'=>(string)$channels, //声道
'width'=>(string)$width,
'bitrate'=>(string)$bit_rate, //码流
'height'=>(string)$height,
);
// dump($bit_rate);
// dump((int)$duration);die;
//dump($ext);
// die;
/* dump( (int)$duration <=20 );
dump( $codec !='h264' );
dump( (int)$frameRate <=10 );
dump( (int)$channels <=0 );
dump( (int)$width < 100 );
dump( (int)$height < 100 );
dump( (int)$bit_rate<500);*/
/*dump($ext);
dump($stream);*/
// 需要, 时长18-20 , 帧速率$frameRate>=25
if( (int)$ext['duration'] <16*60 ||
(int)$ext['duration']>30*60 ||
$ext['codec'] !='h264' ||
(int)$channels !=2 ||
(int)$width != 1920 ||
(int)$height != 1080 ||
(int)$bit_rate<770000
){
return array('code'=>400,'data'=>json_encode($ext));
}else{
if( (int)$frameRate >=25 ){
return array('code'=>200,'data'=>json_encode($ext));
}
return array('code'=>300,'data'=>json_encode($ext));
}
}
/*{"duration":"2485.3220","codec":"h264","frameRate":"25","channels":"2","width":"1920","bitrate":"4096360","height":"1080"}
{"duration":"1175.8585","codec":"h264","frameRate":"30.0","channels":"2","width":"1920","bitrate":"553985","height":"1080"}*/