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 相关文章推荐
仿Aspnetpager的一个PHP分页类代码 附源码下载
Oct 08 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
Jul 19 PHP
thinkphp在模型中自动完成session赋值示例代码
Sep 09 PHP
PHP生成随机密码方法汇总
Aug 27 PHP
php邮箱地址正则表达式验证
Nov 13 PHP
PHP数组函数array_multisort()用法实例分析
Apr 02 PHP
Joomla使用Apache重写模式的方法
May 04 PHP
ThinkPHP实现分页功能
Apr 28 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
Jun 19 PHP
Laravel5框架添加自定义辅助函数的方法
Aug 01 PHP
Mac下快速搭建PHP开发环境步骤详解
May 05 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
Jul 01 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
dedecms后台验证码总提示错误的解决方法
2007/03/21 PHP
php空间不支持socket但支持curl时recaptcha的用法
2011/11/07 PHP
PHP cdata 处理(详细介绍)
2013/07/05 PHP
php获取数组元素中头一个数组元素值的实现方法
2014/12/20 PHP
php实现字符串反转输出的方法
2015/03/14 PHP
php中实现用数组妩媚地生成要执行的sql语句
2015/07/10 PHP
Laravel中正确地返回HTTP状态码方法示例
2019/09/10 PHP
laravel validate 设置为中文的例子(验证提示为中文)
2019/09/29 PHP
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
原生js实现shift/ctrl/alt按键的获取
2013/04/08 Javascript
javascript处理表单示例(javascript提交表单)
2014/04/28 Javascript
IE下通过a实现location.href 获取referer的值
2014/09/04 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
2015/03/20 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
javascript读取文本节点方法小结
2016/12/15 Javascript
JS实现购物车特效
2017/02/02 Javascript
jQuery编写textarea输入字数限制代码
2017/03/23 jQuery
Ionic2开发环境搭建教程
2020/08/20 Javascript
NodeJS服务器实现gzip压缩的示例代码
2018/10/12 NodeJs
[01:01:35]Optic vs paiN 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
Python画柱状统计图操作示例【基于matplotlib库】
2018/07/04 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
2018/09/04 Python
在python里面运用多继承方法详解
2019/07/01 Python
Python3 翻转二叉树的实现
2019/09/30 Python
Python实现仿射密码的思路详解
2020/04/23 Python
国际政治个人自荐信范文
2013/11/26 职场文书
2014年元旦活动方案
2014/02/15 职场文书
2015元旦主持词开场白和结束语
2014/12/14 职场文书
悬空寺导游词
2015/02/05 职场文书
中学生社区服务活动报告
2015/02/05 职场文书
社区五一劳动节活动总结
2015/02/09 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
陈斌强事迹观后感
2015/06/17 职场文书