php使用FFmpeg接口獲取視頻的播放時(shí)長(zhǎng)、碼率、縮略圖以及創(chuàng)建時(shí)間

php使用FFmpeg接口獲取視頻的播放時(shí)長(zhǎng)、碼率、縮略圖以及創(chuàng)建時(shí)間https://www.jb51.net/article/96736.htm

FFmpeg獲得視頻文件的縮略圖:

function?getVideoCover($file,$time,$name) {

???if(empty($time))$time?=?'1';//默認(rèn)截取第一秒第一幀

???$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讀取視頻播放時(shí)長(zhǎng)和碼率

<?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];?//播放時(shí)間

????$arr_duration?=?explode(':',?$match[1]);

????$data['seconds'] =?$arr_duration[0] * 3600 +?$arr_duration[1] * 60 +?$arr_duration[2];?//轉(zhuǎn)換播放時(shí)間為秒數(shù)

????$data['start'] =?$match[2];?//開(kāi)始時(shí)間

????$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'];?//實(shí)際播放時(shí)間

??}

??$data['size'] =?filesize($file);?//文件大小

??return?$data;

}

//用法

$video_info?= getVideoInfo('video.mp4');

print_r($video_info);

?>

Fmpeg獲得視頻文件的總長(zhǎng)度時(shí)間和創(chuàng)建時(shí)間

function?getTime($file){

???$vtime?=?exec("ffmpeg -i ".$file." 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//");//總長(zhǎng)度

???$ctime?=?date("Y-m-d H:i:s",filectime($file));//創(chuàng)建時(shí)間

???//$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

作者:往事love隨緣

鏈接:http://www.itdecent.cn/p/ada86968eb0d

來(lái)源:簡(jiǎn)書(shū)

著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容