最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php中獲得視頻時(shí)間總長(zhǎng)度的另一種方法

 更新時(shí)間:2011年09月15日 21:54:43   作者:  
當(dāng)時(shí)獲得視頻長(zhǎng)度是采用網(wǎng)上的通用的獲得flv視頻文件長(zhǎng)度的方法,但是這個(gè)方法只對(duì)flv視頻支持,其他格式的視頻獲取到的值就很差了
當(dāng)時(shí)獲得視頻長(zhǎng)度是采用網(wǎng)上的通用的獲得flv視頻文件長(zhǎng)度的方法,但是這個(gè)方法只對(duì)flv視頻支持,其他格式的視頻獲取到的值就很差了,
下面在介紹一種:利用ffmpeg返回值Duration的方法,原來也想過用,但是沒有解決,現(xiàn)在可以了,由于ffmpeg支持很多種格式的視頻,所以這個(gè)具體一定的通用性。
ffmpeg獲得視頻時(shí)間長(zhǎng)度的Duration的linux命令:
ffmpeg -i test.flv 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//
可以獲得Duration;看下圖
wps_clip_image-9458

命令分析:

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

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

下面附幾個(gè)cut的實(shí)例:

#ffmpeg -i test.flv

輸入下面信息:

wps_clip_image-19473

①獲得creationdate:文件創(chuàng)建時(shí)間

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

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

wps_clip_image-19643

如果想要截?。?第5個(gè)元素和第8個(gè)元素,應(yīng)該這樣寫:

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

②獲得視頻尺寸大小

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

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

wps_clip_image-25127

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

例如:sed s/,//:表示:用空白符替換','號(hào)
下面是利用獲得視頻縮略圖和視頻總長(zhǎng)度時(shí)間的代碼:

復(fù)制代碼 代碼如下:

<?php
/*
* 獲得視頻文件的縮略圖和視頻長(zhǎng)度
*需要ffmpeg支持
* @author PHP淮北
* @date 2011-09-14
* @copyright PHP淮北
*/
//獲得視頻文件的總長(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
);
}
//獲得視頻文件的縮略圖
function getVideoCover($file,$time) {
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 ".$videoCoverName."",$out,$status);
if($status == 0)return $videoCoverName;
elseif ($status == 1)return FALSE;
}
//調(diào)用方法
$duration = getTime('/usr/local/apache/htdocs/test.flv');
echo $duration['vtime'].'<br/>';//總長(zhǎng)度
echo $duration['ctime'].'<br/>';//創(chuàng)建時(shí)間
$videoCoverName = getVideoCover('/usr/local/apache/htdocs/test.flv', 6);
echo $videoCoverName;//獲得縮略圖名稱
?>

測(cè)試效果

wps_clip_image-21485

視頻長(zhǎng)度是:55秒43

視頻創(chuàng)建時(shí)間;2011-9-13

視頻縮略圖:test.jpg

-----------------------------測(cè)試完全ok

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

filesize()

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

相關(guān)文章

  • php 隨機(jī)記錄mysql rand()造成CPU 100%的解決辦法

    php 隨機(jī)記錄mysql rand()造成CPU 100%的解決辦法

    mysql數(shù)據(jù)庫有10幾萬條數(shù)據(jù),使用rand()提取隨機(jī)10條記錄,導(dǎo)致服務(wù)器cpu占用居高不下直至死機(jī)~
    2010-05-05
  • PHP在線打包下載功能示例

    PHP在線打包下載功能示例

    這篇文章主要介紹了PHP在線打包下載功能實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了php打包下載的實(shí)現(xiàn)流程與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2016-10-10
  • php實(shí)現(xiàn)的讀取CSV文件函數(shù)示例

    php實(shí)現(xiàn)的讀取CSV文件函數(shù)示例

    這篇文章主要介紹了php實(shí)現(xiàn)的讀取CSV文件函數(shù),結(jié)合實(shí)例形式分析了php讀取CSV文件及字符串、數(shù)組遍歷與轉(zhuǎn)換等操作技巧,需要的朋友可以參考下
    2017-02-02
  • PHP 引用的概念

    PHP 引用的概念

    這篇文章主要介紹了PHP的中引用的概念,幫助大家更好的理解和學(xué)習(xí)使用PHP,感興趣的朋友可以了解下
    2021-04-04
  • 針對(duì)PHP開發(fā)安全問題的相關(guān)總結(jié)

    針對(duì)PHP開發(fā)安全問題的相關(guān)總結(jié)

    今天小編就為大家分享一篇關(guān)于針對(duì)PHP開發(fā)安全問題的相關(guān)總結(jié),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 基于php split()函數(shù)的用法詳解

    基于php split()函數(shù)的用法詳解

    本篇文章是對(duì)php中split()函數(shù)的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP實(shí)現(xiàn)異步定時(shí)多任務(wù)消息推送

    PHP實(shí)現(xiàn)異步定時(shí)多任務(wù)消息推送

    在 PHP 中實(shí)現(xiàn)異步定時(shí)多任務(wù)消息推送的方式有多種,其中一種常用的方式是使用異步任務(wù)隊(duì)列,這篇文章主要介紹了這一方法的具體實(shí)現(xiàn),需要的可以參考一下
    2023-04-04
  • PHP與MySQL開發(fā)中頁面亂碼的產(chǎn)生與解決

    PHP與MySQL開發(fā)中頁面亂碼的產(chǎn)生與解決

    一般來說,亂碼的出現(xiàn)有2種原因,首先是由于編碼(charset)設(shè)置錯(cuò)誤,導(dǎo)致瀏覽器以錯(cuò)誤的編碼來解析,從而出現(xiàn)了滿屏亂七八糟的“天書”,其次是文件被以錯(cuò)誤的編碼打開,然后保存,比如一個(gè)文本文件原先是GB2312編碼的,卻以UTF-8編碼打開再保存。要解決上述亂碼問題,首先需要知道開發(fā)中哪些環(huán)節(jié)涉及到了編碼:
    2008-03-03
  • php $_SERVER當(dāng)前完整url的寫法

    php $_SERVER當(dāng)前完整url的寫法

    php當(dāng)前完整url的寫法,需要的朋友可以參考下。
    2009-11-11
  • PHP中return 和 exit 、break和contiue 區(qū)別與用法

    PHP中return 和 exit 、break和contiue 區(qū)別與用法

    return、break和contiue是語言結(jié)構(gòu),就如同if語句之類的,但是exit卻是個(gè)函數(shù)
    2012-04-04

最新評(píng)論

濉溪县| 宁武县| 米易县| 乃东县| 郴州市| 巴中市| 灵川县| 土默特右旗| 鄂托克前旗| 兰考县| 漳平市| 隆安县| 泸西县| 曲周县| 蒙自县| 临武县| 满城县| 思茅市| 吉安县| 孝感市| 南皮县| 孟州市| 抚顺县| 德惠市| 永嘉县| 怀远县| 太湖县| 宁国市| 府谷县| 旬邑县| 博乐市| 始兴县| 八宿县| 柳林县| 湾仔区| 深水埗区| 宝山区| 德格县| 大荔县| 石屏县| 香格里拉县|