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框架的性能
Jan 10 PHP
php 文件状态缓存带来的问题
Dec 14 PHP
php 保留小数点
Apr 21 PHP
php启用zlib压缩文件的配置方法
Jun 12 PHP
php获取网页中图片、DIV内容的简单方法
Jun 19 PHP
php字符串截取函数用法分析
Nov 25 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
Mar 05 PHP
初识ThinkPHP控制器
Apr 07 PHP
Yii框架批量插入数据扩展类的简单实现方法
May 23 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
Jul 04 PHP
Laravel5.1 框架响应基本用法实例分析
Jan 04 PHP
laravel 框架执行流程与原理简单分析
Feb 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
php实现word转html的方法
2016/01/22 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
Apache站点配置SSL强制跳转443
2021/03/09 Servers
javascript call方法使用说明
2010/01/11 Javascript
JQuery获取各种宽度、高度(format函数)实例
2013/03/04 Javascript
jquery ajax 简单范例(界面+后台)
2013/11/19 Javascript
Extjs根据条件设置表格某行背景色示例
2014/07/23 Javascript
JS实现简单的键盘打字的效果
2015/04/24 Javascript
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
javascript弹出拖动窗口
2015/08/11 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
微信小程序 picker-view 组件详解及简单实例
2017/01/10 Javascript
浅谈JS如何实现真正的对象常量
2017/06/25 Javascript
浅谈angular.js跨域post解决方案
2017/08/30 Javascript
利用javascript如何随机生成一定位数的密码
2017/09/22 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
理解 JavaScript EventEmitter
2018/03/29 Javascript
Vue渲染过程浅析
2019/03/14 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
js对象简介与基本用法示例
2020/03/13 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
带你使用webpack快速构建web项目的方法
2020/11/12 Javascript
python socket 超时设置 errno 10054
2014/07/01 Python
python+django快速实现文件上传
2016/10/24 Python
python3.6的venv模块使用详解
2018/08/01 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
手把手教你使用Python创建微信机器人
2019/04/29 Python
Python ConfigParser模块的使用示例
2020/10/12 Python
趣天网日本站:Qoo10 JP
2019/09/18 全球购物
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
2016应届大学生自荐信模板
2016/01/28 职场文书
导游词之千岛湖
2019/09/23 职场文书
Python网络编程之ZeroMQ知识总结
2021/04/25 Python
MySQL如何使用使用Xtrabackup进行备份和恢复
2021/06/21 MySQL