国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

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

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

命令分析:

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

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

下面附幾個cut的實例:

#ffmpeg -i test.flv

輸入下面信息:

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

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

如果想要截?。?第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/,//

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 。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 驻马店市| 牙克石市| 翼城县| 南丰县| 刚察县| 富源县| 泽库县| 洪泽县| 嵩明县| 扶余县| 酒泉市| 津南区| 永川市| 龙泉市| 名山县| 岑巩县| 保康县| 上蔡县| 浪卡子县| 马鞍山市| 江山市| 柳江县| 富阳市| 永仁县| 柘城县| 望江县| 加查县| 交口县| 维西| 上高县| 综艺| 左贡县| 甘南县| 台山市| 芷江| 中方县| 许昌县| 喜德县| 九寨沟县| 大洼县| 桃园县|