当前位置: 首页 > 后端技术 > PHP

PHP正则匹配获取视频信息

时间:2023-03-30 05:48:24 PHP

$video_info=shell_exec('ffmpeg-iinput.mp42>&1');//使用输出缓冲区获取ffmpeg的所有输出内容$ret=array();//Duration:00:33:42.64,start:0.000000,bitrate:152kb/sif(preg_match("/Duration:(.*?),start:(.*?),bitrate:(\d*)kb\/s/",$video_info,$matches)){$ret['duration']=$matches[1];//视频长度$duration=explode(':',$matches[1]);$ret['seconds']=$duration[0]*3600+$duration[1]*60+$duration[2];//转换为秒$ret['start']=$matches[2];//开始时间$ret['bitrate']=$matches[3];//比特率单位kb}//Stream#0:1:Video:rv20(RV20/0x30325652),yuv420p,352x288,117kb/s,15fps,15tbr,1ktbn,1ktbc//Stream#0:0(und):视频:h264(High)(avc1/0x31637661),yuv420p(tv,bt709),544x960,1229kb/s,29.58fps,29.97tbr,600tbn,1200tbc(default)if(preg_match("/视频:(.*?)[\s\(].*?,(.*?)[,\().*?(\d*[x]\d*)[,\s]",$video_info,$matches)){$ret['vcodec']=$matches[1];//编码格式$ret['vformat']=$matches[2];//视频格式$ret['resolution']=$matches[3];//分辨率列表($width,$height)=explode('x',$matches[3]);$ret['宽度']=$宽度;$ret['height']=$height;}//Stream#0:0:Audio:cook(cook/0x6B6F6F63),22050Hz,stereo,fltp,32kb/sif(preg_match("/Audio:(.*),(\d*)Hz/",$video_info,$matches)){$ret['acodec']=$matches[1];//音频编码$ret['asamplerate']=$matches[2];//音频采样频率}//旋转度数if(preg_match("/rotate\s*:\s(\d*)/",$video_info,$matches)){if($matches[1]>0)$旋转=intval($matches[1]);}if(isset($ret['seconds'])&&isset($ret['start'])){$ret['play_time']=$ret['seconds']+$ret['start'];//实际播放时间}$ret['size']=filesize($file);//视频文件大小