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实现WEB动态网页静态
Oct 09 PHP
PHP中文分词 自动获取关键词介绍
Nov 13 PHP
主流PHP框架的优缺点对比分析
Dec 25 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
Mar 25 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
May 12 PHP
CI框架的安全性分析
May 18 PHP
nginx下安装php7+php5
Jul 31 PHP
php计算多个集合的笛卡尔积实例详解
Feb 16 PHP
PHP实现ASCII码与字符串相互转换的方法
Apr 29 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
May 21 PHP
laravel 使用事件系统统计浏览量的实现
Oct 16 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
Smarty局部缓存的几种方法简介
2014/06/17 PHP
PHP实现根据时间戳获取周几的方法
2016/02/26 PHP
符合标准的js表单提交的代码
2007/09/13 Javascript
event对象的方法 兼容多浏览器
2009/06/27 Javascript
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
jQuery/CSS3图片特效插件整理推荐
2014/12/07 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
全面解析Angular中$Apply()及$Digest()的区别
2016/08/04 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
详解微信小程序 相对定位和绝对定位
2017/05/11 Javascript
深入理解Angular.JS中的Scope继承
2017/06/04 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
2018/08/28 Javascript
React Native中Mobx的使用方法详解
2018/12/04 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
node.js制作一个简单的登录拦截器
2020/02/10 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
JavaScript实现商品评价五星好评
2020/11/30 Javascript
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
python中利用h5py模块读取h5文件中的主键方法
2018/06/05 Python
python得到windows自启动列表的方法
2018/10/14 Python
使用Keras预训练模型ResNet50进行图像分类方式
2020/05/23 Python
Python提取视频中图片的示例(按帧、按秒)
2020/10/22 Python
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
Java的基础面试题附答案
2016/01/10 面试题
介绍一下Ruby的多线程处理
2013/02/01 面试题
中学生自我评价范文
2014/02/08 职场文书
和谐家庭演讲稿
2014/05/24 职场文书
机关领导干部作风整顿整改措施
2014/09/19 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
李强为自己工作观后感
2015/06/11 职场文书
python如何做代码性能分析
2021/04/26 Python
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js