一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - php中獲得視頻時間總長度的另一種方法

php中獲得視頻時間總長度的另一種方法

2019-12-12 14:38PHP教程網 PHP教程

當時獲得視頻長度是采用網上的通用的獲得flv視頻文件長度的方法,但是這個方法只對flv視頻支持,其他格式的視頻獲取到的值就很差了

當時獲得視頻長度是采用網上的通用的獲得flv視頻文件長度的方法,但是這個方法只對flv視頻支持,其他格式的視頻獲取到的值就很差了, 
下面在介紹一種:利用ffmpeg返回值Duration的方法,原來也想過用,但是沒有解決,現在可以了,由于ffmpeg支持很多種格式的視頻,所以這個具體一定的通用性。 
ffmpeg獲得視頻時間長度的Duration的linux命令: 
ffmpeg -i test.flv 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,// 
可以獲得Duration;看下圖 
php中獲得視頻時間總長度的另一種方法

命令分析:

grep命令:匹配查找文件里符合條件的字符串,這里查找Duration字段

cut:以空格為分割符,查詢第四個元素,cut是很好的切割命令

下面附幾個cut的實例:

#ffmpeg -i test.flv

輸入下面信息:

php中獲得視頻時間總長度的另一種方法

①獲得creationdate:文件創建時間

ffmpeg -i test.flv 2>&1 | grep 'creationdate' | cut -d ' ' -f  5-

說明:Cut是文本截取命令:以空格作為分隔符,截取第5位以后的字段,

php中獲得視頻時間總長度的另一種方法

如果想要截取: 第5個元素和第8個元素,應該這樣寫:

ffmpeg -i test.flv 2>&1 | grep 'creationdate' | cut -d ' ' -f  5,8

②獲得視頻尺寸大小

使用cut截取以空格為分隔符的第十個元素也是視頻尺寸

ffmpeg -i test.flv 2>&1 | grep 'Video' | cut -d ' ' -f 10 | sed s/,//

php中獲得視頻時間總長度的另一種方法

sed命令:sed ‘s/要替換的字符串/新字符串/g'

例如:sed s/,//:表示:用空白符替換','號
下面是利用獲得視頻縮略圖和視頻總長度時間的代碼: 

復制代碼代碼如下:


<?php 
/* 
* 獲得視頻文件的縮略圖和視頻長度 
*需要ffmpeg支持 
* @author PHP淮北 
* @date 2011-09-14 
* @copyright PHP淮北 
*/ 
//獲得視頻文件的總長度時間和創建時間 
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));//創建時間 
//$duration = explode(":",$time); 
// $duration_in_seconds = $duration[0]*3600 + $duration[1]*60+ round($duration[2]);//轉化為秒 
return array('vtime'=>$vtime, 
'ctime'=>$ctime 
); 

//獲得視頻文件的縮略圖 
function getVideoCover($file,$time) { 
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 ".$videoCoverName."",$out,$status); 
if($status == 0)return $videoCoverName; 
elseif ($status == 1)return FALSE; 

//調用方法 
$duration = getTime('/usr/local/apache/htdocs/test.flv'); 
echo $duration['vtime'].'<br/>';//總長度 
echo $duration['ctime'].'<br/>';//創建時間 
$videoCoverName = getVideoCover('/usr/local/apache/htdocs/test.flv', 6); 
echo $videoCoverName;//獲得縮略圖名稱 
?> 

 

 

測試效果

php中獲得視頻時間總長度的另一種方法

 

視頻長度是:55秒43

視頻創建時間;2011-9-13

視頻縮略圖:test.jpg

-----------------------------測試完全ok

 

補充:如果想獲得視頻文件的大小可以使用:

filesize()

filesize() 函數用于取得文件大小默認單位是:bytes,成功返回文件大小的字節數,否則返回 FALSE 。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美专区在线视频 | 亚洲精品永久免费 | 小草高清视频免费直播 | blacked亚裔videoshd | 手机看片国产免费现在观看 | 啪啪模拟器 | 动漫美女人物被黄漫在线看 | 国产欧美一区二区成人影院 | 久见久热 这里只有精品 | 亚州成人| 午夜勾魂曲 | 免费午夜影片在线观看影院 | 欧美巨胸| 欧美一级特黄特色大片 | 亚洲精品国产A久久久久久 亚洲精品福利一区二区在线观看 | 国产精品99久久免费观看 | 欧美在线播放一区二区 | 1769亚洲欧美资源站 | 国产一区二区不卡视频 | 国产一级黄色录像 | 国产拍拍| sxx免费看视频在线播放 | 国产亚洲女在线线精品 | 亚洲精品高清中文字幕完整版 | 日本免费不卡在线一区二区三区 | 日本高清视频网址 | 欧美亚洲国产精品久久第一页 | 欧美日韩成人在线视频 | 日韩视频免费观看 | 免费午夜剧场 | 色综合久久夜色精品国产 | 国产黄频 | 免费永久视频 | 欧美a级在线观看 | 久久综合中文字幕佐佐木希 | xxx88视频在线观看 | 美女被吸乳老师羞羞漫画 | 国产精品最新资源网 | 加勒比福利 | 极品美女aⅴ高清在线观看 极品ts赵恩静和直男激战啪啪 | 99re热这里只有精品 |