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 iconv 函数转gb2312的bug解决方法
Oct 11 PHP
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
Dec 05 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
Dec 25 PHP
解析php中eclipse 用空格替换 tab键
Jun 24 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
Mar 28 PHP
php遍历数组的4种方法总结
Jul 05 PHP
php通过文件流方式复制文件的方法
Mar 13 PHP
php项目中百度 UEditor 简单安装调试和调用
Jul 15 PHP
Yii控制器中操作视图js的方法
Jul 04 PHP
PHP进阶学习之依赖注入与Ioc容器详解
Jun 19 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
Sep 23 PHP
PHP反射基础知识回顾
Sep 10 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
PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
2009/10/22 PHP
PHP 配置open_basedir 让各虚拟站点独立运行
2009/11/12 PHP
基于递归实现的php树形菜单代码
2014/11/19 PHP
php中$_POST与php://input的区别实例分析
2015/01/07 PHP
php字符串分割函数用法实例
2015/03/17 PHP
深入理解PHP之源码目录结构与功能说明
2016/06/01 PHP
浅谈PHP中的数据传输CURL
2016/09/06 PHP
php-app开发接口加密详解
2018/04/18 PHP
laravel返回统一格式错误码问题
2019/11/04 PHP
无阻塞加载脚本分析[全]
2011/01/20 Javascript
jQuery 1.9移除了$.browser可以使用$.support来替代
2014/09/03 Javascript
详解Javascript 装载和执行
2014/11/17 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
H5用户注册表单页 注册模态框!
2016/09/17 Javascript
ES6新数据结构Map功能与用法示例
2017/03/31 Javascript
基于ES6 Array.of的用法(实例讲解)
2017/09/05 Javascript
ES6扩展运算符用法实例分析
2017/10/31 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
小程序实现上传视频功能
2020/08/18 Javascript
Openlayers实现测量功能
2020/09/25 Javascript
Python编程实现的简单神经网络算法示例
2018/01/26 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
2019/03/26 Python
Hotels.com英国:全球领先的酒店住宿提供商
2019/01/24 全球购物
乌克兰品牌化妆品和香水在线商店:Bomond
2020/01/14 全球购物
化工专业推荐信范文
2013/11/28 职场文书
大学军训感言
2014/01/10 职场文书
七年级政治教学反思
2014/02/03 职场文书
建筑安全员岗位职责
2014/03/13 职场文书
机关会计岗位职责
2014/04/08 职场文书
学生不讲诚信检讨书
2014/09/29 职场文书
2015公务员年度考核评语
2015/03/25 职场文书
校园广播稿范文
2015/08/19 职场文书
2016年教师党员公开承诺书
2016/03/24 职场文书
员工工作心得体会
2019/05/07 职场文书
用Python简陋模拟n阶魔方
2021/04/17 Python