php使用FFmpeg接口獲取視頻的播放時長、碼率、縮略圖以及創(chuàng)建時間
創(chuàng)建時間:2019年6月3日(星期一) 下午5:13|?分類:未分類
?| 字數(shù):2512??|?另存為...?|?打印?|?添加到日歷
php使用FFmpeg接口獲取視頻的播放時長焙贷、碼率、縮略圖以及創(chuàng)建時間https://www.jb51.net/article/96736.htm
FFmpeg獲得視頻文件的縮略圖:
function?getVideoCover($file,$time,$name) {
???if(empty($time))$time?=?'1';//默認截取第一秒第一幀
???$strlen?=?strlen($file);
???// $videoCover = substr($file,0,$strlen-4);
???// $videoCoverName = $videoCover.'.jpg';//縮略圖命名
???//exec("ffmpeg -i ".$file." -y -f mjpeg -ss ".$time." -t 0.001 -s 320x240 ".$name."",$out,$status);
???$str?=?"ffmpeg -i ".$file." -y -f mjpeg -ss 3 -t ".$time." -s 320x240 ".$name;
???//echo $str."</br>";
???$result?= system($str);
???}
Fmpeg讀取視頻播放時長和碼率
<?php
define('FFMPEG_PATH',?'/usr/local/ffmpeg2/bin/ffmpeg -i "%s" 2>&1');
function?getVideoInfo($file) {
??$command?= sprintf(FFMPEG_PATH,?$file);
??ob_start();
??passthru($command);
??$info?= ob_get_contents();
??ob_end_clean();
??$data?=?array();
??if?(preg_match("/Duration: (.*?), start: (.*?), bitrate: (\d*) kb\/s/",?$info,?$match)) {
????$data['duration'] =?$match[1];?//播放時間
????$arr_duration?=?explode(':',?$match[1]);
????$data['seconds'] =?$arr_duration[0] * 3600 +?$arr_duration[1] * 60 +?$arr_duration[2];?//轉(zhuǎn)換播放時間為秒數(shù)
????$data['start'] =?$match[2];?//開始時間
????$data['bitrate'] =?$match[3];?//碼率(kb)
??}
??if?(preg_match("/Video: (.*?), (.*?), (.*?)[,\s]/",?$info,?$match)) {
????$data['vcodec'] =?$match[1];?//視頻編碼格式
????$data['vformat'] =?$match[2];?//視頻格式
????$data['resolution'] =?$match[3];?//視頻分辨率
????$arr_resolution?=?explode('x',?$match[3]);
????$data['width'] =?$arr_resolution[0];
????$data['height'] =?$arr_resolution[1];
??}
??if?(preg_match("/Audio: (\w*), (\d*) Hz/",?$info,?$match)) {
????$data['acodec'] =?$match[1];?//音頻編碼
????$data['asamplerate'] =?$match[2];?//音頻采樣頻率
??}
??if?(isset($data['seconds']) && isset($data['start'])) {
????$data['play_time'] =?$data['seconds'] +?$data['start'];?//實際播放時間
??}
??$data['size'] =?filesize($file);?//文件大小
??return?$data;
}
//用法
$video_info?= getVideoInfo('video.mp4');
print_r($video_info);
?>
Fmpeg獲得視頻文件的總長度時間和創(chuàng)建時間
function?getTime($file){
???$vtime?=?exec("ffmpeg -i ".$file." 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//");//總長度
???$ctime?=?date("Y-m-d H:i:s",filectime($file));//創(chuàng)建時間
???//$duration = explode(":",$time);
???// $duration_in_seconds = $duration[0]*3600 + $duration[1]*60+ round($duration[2]);//轉(zhuǎn)化為秒
???return?array('vtime'=>$vtime,
???'ctime'=>$ctime
???);
}
need-to-insert-img