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 相关文章推荐
smarty实例教程
Nov 19 PHP
在服务端进行目录建立、删除,文件上传、删除的过程的php代码
Sep 10 PHP
php set_time_limit(0) 设置程序执行时间的函数
May 26 PHP
第4章 数据处理-php数组的处理-郑阿奇
Jul 04 PHP
MySQL连接数超过限制的解决方法
Jul 17 PHP
支持中文的php加密解密类代码
Nov 27 PHP
Yii中实现处理前后台登录的新方法
Dec 28 PHP
PHP中单例模式与工厂模式详解
Feb 17 PHP
php 数组元素快速去重
May 05 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
Dec 21 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
Feb 03 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使用Pthread实现的多线程操作实例
2015/11/14 PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
2020/07/10 PHP
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
关于js datetime的那点事
2011/11/15 Javascript
JQuery筛选器全系列介绍
2013/08/27 Javascript
百度移动版的url编码解码示例
2014/04/29 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
node.js中的fs.readSync方法使用说明
2014/12/17 Javascript
nodejs中的fiber(纤程)库详解
2015/03/24 NodeJs
jQuery移动web开发之页面跳转和加载外部页面的实现
2015/12/04 Javascript
JavaScript兼容浏览器FF/IE技巧
2016/08/14 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
vue实现前进刷新后退不刷新效果
2018/01/26 Javascript
[04:19]完美世界携手游戏风云打造 卡尔工作室模型介绍篇
2013/04/24 DOTA
python中将字典转换成其json字符串
2014/07/16 Python
Python中的ctime()方法使用教程
2015/05/22 Python
Python 备份程序代码实现
2017/03/06 Python
简单实现python收发邮件功能
2018/01/05 Python
python中使用iterrows()对dataframe进行遍历的实例
2018/06/09 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
详解Django+uwsgi+Nginx上线最佳实战
2019/03/14 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
NIHAOMARKET官方海外旗舰店:意大利你好华人超市
2018/01/27 全球购物
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
医学专业毕业生个人求职信
2013/12/25 职场文书
党员个人公开承诺书
2014/08/29 职场文书
水利专业大学生职业生涯规划书范文
2014/09/17 职场文书
北京故宫导游词
2015/01/31 职场文书
大连导游词
2015/02/12 职场文书
办公室卫生管理制度
2015/08/04 职场文书
导游词之镇江-金山寺
2019/10/14 职场文书
关于python类SortedList详解
2021/09/04 Python