php flv视频时间获取函数


Posted in PHP onJune 29, 2010
<?php 
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; 

} 

function getTime($name){ 

if(!file_exists($name)){ 

return; 

} 

$flv_data_length=filesize($name); 

$fp = @fopen($name, 'rb'); 

$flv_header = fread($fp, 5); 

fseek($fp, 5, SEEK_SET); 

$frame_size_data_length =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 = BigEndian2Int(substr($this_tag_header, 5, 3)); 

$timestamp = 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; 

} 

function fn($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; 

} 

echo getTime("27729.flv");//显示数字时间如236722 

echo fn(236722); //显示时间格式0:03:56 

?>
PHP 相关文章推荐
php分页示例代码
Mar 19 PHP
用PHP读取flv文件的播放时间长度
Sep 03 PHP
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
Aug 05 PHP
php5.2以下版本无json_decode函数的解决方法
May 25 PHP
PHP文件锁函数flock()详细介绍
Nov 18 PHP
php的闭包(Closure)匿名函数详解
Feb 22 PHP
详解PHP中instanceof关键字及instanceof关键字有什么作用
Nov 05 PHP
thinkPHP自定义类实现方法详解
Nov 30 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 PHP
PHP中实现中文字串截取无乱码的解决方法
May 29 PHP
php支付宝系列之电脑网站支付
May 30 PHP
PHP实现倒计时功能
Nov 16 PHP
PHP常用代码大全(新手入门必备)
Jun 29 #PHP
PHP print类函数使用总结
Jun 25 #PHP
php url地址栏传中文乱码解决方法集合
Jun 25 #PHP
PHP+ACCESS 文章管理程序代码
Jun 21 #PHP
php $_SERVER[&quot;REQUEST_URI&quot;]获取值的通用解决方法
Jun 21 #PHP
php自动加载的两种实现方法
Jun 21 #PHP
PHP定时自动生成静态HTML的实现代码
Jun 20 #PHP
You might like
图象函数中的中文显示
2006/10/09 PHP
PHP数组内存利用率低和弱类型详细解读
2017/08/10 PHP
javascript 出生日期和身份证判断大全
2008/11/13 Javascript
基于jQuery的ajax功能实现web service的json转化
2009/08/29 Javascript
js hover 定时器(实例代码)
2013/11/12 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
2014/06/27 Javascript
分享一款基于jQuery的视频播放插件
2014/10/09 Javascript
jQuery trigger()方法用法介绍
2015/01/13 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
jQuery Checkbox 全选 反选的简单实例
2016/11/29 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
TypeScript学习之强制类型的转换
2016/12/27 Javascript
vuejs如何配置less
2017/04/25 Javascript
javascript trie前缀树的示例
2018/01/29 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
JavaScript遍历数组和对象的元素简单操作示例
2019/07/09 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
js实现幻灯片轮播图
2020/08/14 Javascript
python数据结构之图的实现方法
2015/07/08 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
2018/04/27 Python
简单了解python反射机制的一些知识
2019/07/13 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
2019/08/07 Python
Python文本处理简单易懂方法解析
2019/12/19 Python
python使用正则表达式(Regular Expression)方法超详细
2019/12/30 Python
Pytorch 神经网络—自定义数据集上实现教程
2020/01/07 Python
你需要学会的8个Python列表技巧
2020/06/24 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
Python getsizeof()和getsize()区分详解
2020/11/20 Python
HEMA英国:荷兰原创设计
2018/08/28 全球购物
大专计算机个人求职的自我评价
2013/10/21 职场文书
劳资员岗位职责
2013/11/11 职场文书
工程材料采购方案
2014/05/18 职场文书
基督教追悼会答谢词
2015/09/29 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
MySQL8.0.24版本Release Note的一些改进点
2021/04/22 MySQL
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript