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 相关文章推荐
Sorting Array Values in PHP(数组排序)
Sep 15 PHP
基于MySQL分区性能的详细介绍
May 02 PHP
PHP利用REFERER根居访问来地址进行页面跳转
Sep 28 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
Jun 19 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
Aug 19 PHP
php基础教程
Aug 26 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
Sep 21 PHP
THinkPHP获取客户端IP与IP地址查询的方法
Nov 14 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
Aug 28 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
Jun 22 PHP
PHP htmlspecialchars_decode()函数用法讲解
Mar 01 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 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文件上传(实例)
2013/10/27 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
2014/12/24 PHP
PHP获取ip对应地区和使用网络类型的方法
2015/03/11 PHP
php中JSON的使用方法
2015/04/30 PHP
PHP-FPM之Chroot执行环境详解
2015/08/03 PHP
Yii快速入门经典教程
2015/12/28 PHP
php注册和登录界面的实现案例(推荐)
2016/10/24 PHP
Yii2实现自定义独立验证器的方法
2017/05/05 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
2019/10/18 PHP
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
验证javascript中Object和Function的关系的三段简单代码
2010/06/27 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
2012/11/07 Javascript
instanceof和typeof运算符的区别详解
2014/01/06 Javascript
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
jQuery中replaceAll()方法用法实例
2015/01/16 Javascript
JS实现网页每隔3秒弹出一次对话框的方法
2015/11/09 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
bootstrap快速制作后台界面
2016/12/05 Javascript
利用node.js本地搭建HTTP服务器
2017/04/19 Javascript
详解用webpack2搭建angular2的项目
2017/06/22 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
2017/10/31 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
uniapp实现可滑动选项卡
2020/10/21 Javascript
[36:33]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第二场
2018/04/04 DOTA
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
Python制作爬虫抓取美女图
2016/01/20 Python
Python网站验证码识别
2016/01/25 Python
使用Python的urllib2模块处理url和图片的技巧两则
2016/02/18 Python
浅谈python函数调用返回两个或多个变量的方法
2019/01/23 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
解决Python列表字符不区分大小写的问题
2019/12/19 Python
营业员演讲稿
2013/12/30 职场文书
考试退步检讨书
2014/01/15 职场文书
演讲开场白和结束语
2015/05/29 职场文书
党风廉政教育心得体会2016
2016/01/22 职场文书
python3操作redis实现List列表实例
2021/08/04 Python