利用php獲得flv視頻長(zhǎng)度的實(shí)例代碼
廢話(huà)不多說(shuō)了,直接給大家貼代碼了,具體代碼如下所示:
function BigEndian2Int($byte_word, $signed = false) {
$int_value = 0;
$byte_wordlen = strlen($byte_word);
for ($i = 0; $i < $byte_wordlen; $i++) {
$int_value += ord($byte_word{$i}) * pow(256, ($byte_wordlen - 1 - $i));
}
if ($signed) {
$sign_mask_bit = 0x80 << (8 * ($byte_wordlen - 1));
if ($int_value & $sign_mask_bit) {
$int_value = 0 - ($int_value & ($sign_mask_bit - 1));
}
}
return $int_value;
}
//獲得視頻的數(shù)字時(shí)間
function getFlvDuration($name){
if(!file_exists($name)){
return;
}
$flv_data_length=filesize($name);
$fp = @fopen($name, 'r');
$flv_header = fread($fp, 5);
fseek($fp, 5, SEEK_SET);
$frame_size_data_length = $this->BigEndian2Int(fread($fp, 4));
$flv_header_frame_length = 9;
if ($frame_size_data_length > $flv_header_frame_length) {
fseek($fp, $frame_size_data_length - $flv_header_frame_length, SEEK_CUR);
}
$duration = 0;
while ((ftell($fp) + 1) < $flv_data_length) {
$this_tag_header = fread($fp, 16);
$data_length = $this->BigEndian2Int(substr($this_tag_header, 5, 3));
$timestamp = $this->BigEndian2Int(substr($this_tag_header, 8, 3));
$next_offset = ftell($fp) - 1 + $data_length;
if ($timestamp > $duration) {
$duration = $timestamp;
}
fseek($fp, $next_offset, SEEK_SET);
}
fclose($fp);
return $duration;
}
//轉(zhuǎn)化為0:03:56的時(shí)間格式
function getFlvTime($time){
$num = $time;
$sec = intval($num/1000);
$h = intval($sec/3600);
$m = intval(($sec%3600)/60);
$s = intval(($sec%60));
$tm = $h.':'.$m.':'.$s;
return $tm;
}
總結(jié)
以上所述是小編給大家介紹的利用php獲得flv視頻長(zhǎng)度的實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- thinkPHP實(shí)現(xiàn)的驗(yàn)證碼登錄功能示例
- thinkPHP實(shí)現(xiàn)上傳圖片及生成縮略圖功能示例
- php+ajax+h5實(shí)現(xiàn)圖片上傳功能
- PHP實(shí)現(xiàn)找出數(shù)組中出現(xiàn)次數(shù)超過(guò)數(shù)組長(zhǎng)度一半的數(shù)字算法示例
- 史上最全的PHP正則表達(dá)式(手機(jī)號(hào)需要加上177-***)
- PHP用函數(shù)嵌入網(wǎng)站訪(fǎng)問(wèn)量計(jì)數(shù)器
- PHP實(shí)現(xiàn)網(wǎng)站訪(fǎng)問(wèn)量計(jì)數(shù)器
- php 重寫(xiě)分頁(yè)器 CLinkPager的實(shí)例
相關(guān)文章
PHP微信開(kāi)發(fā)之查詢(xún)微信精選文章
這篇文章主要為大家詳細(xì)介紹了PHP微信開(kāi)發(fā)之簡(jiǎn)單實(shí)現(xiàn)查詢(xún)微信精選文章的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-06-06
基于PHP實(shí)現(xiàn)生成隨機(jī)水印圖片
這篇文章主要介紹了基于PHP實(shí)現(xiàn)生成隨機(jī)水印圖片,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12
詳解php幾行代碼實(shí)現(xiàn)CSV格式文件輸出
本篇文章主要介紹了詳解php幾行代碼實(shí)現(xiàn)CSV格式文件輸出,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
Laravel監(jiān)聽(tīng)數(shù)據(jù)庫(kù)訪(fǎng)問(wèn),打印SQL的例子
今天小編就為大家分享一篇Laravel監(jiān)聽(tīng)數(shù)據(jù)庫(kù)訪(fǎng)問(wèn),打印SQL的例子,有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
PHP實(shí)現(xiàn)微信小程序在線(xiàn)支付功能(代碼實(shí)例)
這篇文章主要介紹了PHP微信小程序在線(xiàn)支付功能(代碼實(shí)例),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的工作或?qū)W習(xí)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03

