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 仿Comsenz安装效果代码打包提供下载
May 09 PHP
深入解析php之sphinx
May 15 PHP
解析用PHP实现var_export的详细介绍
Jun 20 PHP
测试php连接mysql是否成功的代码分享
Jan 24 PHP
php数组删除元素示例
Mar 21 PHP
php中获取主机名、协议及IP地址的方法
Nov 18 PHP
Laravel 5框架学习之数据库迁移(Migrations)
Apr 08 PHP
php格式化电话号码的方法
Apr 24 PHP
php注册登录系统简化版
Dec 28 PHP
php进程间通讯实例分析
Jul 11 PHP
php获取数据库结果集方法(推荐)
Jun 01 PHP
PHP中$GLOBALS与global的区别详解
Mar 21 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 Smarty生成EXCEL文档的代码
2008/08/23 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
带密匙的php加密解密示例分享
2014/01/29 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
2016/03/10 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
理解 JavaScript 预解析
2009/10/25 Javascript
js实现右下角可关闭最小化div(可用于展示推荐内容)
2013/06/24 Javascript
让JavaScript和其它资源并发下载的方法
2014/10/16 Javascript
使用mini-define实现前端代码的模块化管理
2014/12/25 Javascript
jquery 构造函数在表单提交过程中修改数据
2015/05/25 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
vue源码入口文件分析(推荐)
2018/01/30 Javascript
Vue多组件仓库开发与发布详解
2019/02/28 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
解决layer.msg 不居中 ifram中的问题
2019/09/05 Javascript
vue 根据选择条件显示指定参数的例子
2019/11/09 Javascript
nodeJs项目在阿里云的简单部署
2020/11/27 NodeJs
elementui实现预览图片组件二次封装
2020/12/29 Javascript
讲解python参数和作用域的使用
2013/11/01 Python
Python使用xlrd模块操作Excel数据导入的方法
2015/05/26 Python
Python实现的用户登录系统功能示例
2018/02/05 Python
浅析python的Lambda表达式
2019/02/27 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
日语翻译个人求职的自我评价
2013/10/14 职场文书
大学生求职简历的自我评价
2013/10/14 职场文书
应届生服务员求职信
2013/10/31 职场文书
温馨提示标语
2014/06/26 职场文书
党员群众路线学习心得体会
2014/11/04 职场文书
房屋授权无偿使用证明
2014/11/29 职场文书
2014工程部年度工作总结
2014/12/17 职场文书
优秀团支部申报材料
2014/12/26 职场文书
社会治安综合治理责任书
2015/01/29 职场文书
《半截蜡烛》教学反思
2016/02/19 职场文书
一文搞懂redux在react中的初步用法
2021/06/09 Javascript
vue使用element-ui按需引入
2022/05/20 Vue.js