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 URL编码解码函数代码
Mar 10 PHP
windows下开发并编译PHP扩展的方法
Mar 18 PHP
php文档更新介绍
Jul 22 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
Feb 16 PHP
PHP缩略图生成和图片水印制作
Jan 07 PHP
Yii2实现增删改查后留在当前页的方法详解
Jan 13 PHP
完美解决thinkphp唯一索引重复时出错的问题
Mar 31 PHP
Ubuntu上安装yaf扩展的方法
Jan 29 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 09 PHP
实例分析PHP将字符串转换成数字的方法
Jan 27 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 PHP
PHP实现简易用户登录系统
Jul 10 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
德生S2000南麂列岛台湾FM收听记录
2021/03/02 无线电
thinkphp中的url跳转用法分析
2016/07/12 PHP
php根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
PHP基于curl模拟post提交json数据示例
2018/06/22 PHP
php 将json格式数据转换成数组的方法
2018/08/21 PHP
laravel 解决paginate查询多个字段报错的问题
2019/10/22 PHP
laravel解决迁移文件一次删除创建字段报错的问题
2019/10/24 PHP
JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
2010/12/10 Javascript
js实现拖拽效果
2015/02/12 Javascript
浅析javascript中的DOM
2015/03/01 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
JavaScript使用function定义对象并调用的方法
2015/03/23 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
2015/06/09 Javascript
js行号显示的文本框实现效果(兼容多种浏览器 )
2015/10/23 Javascript
Vue 按键修饰符处理事件的方法
2018/05/04 Javascript
JS实现简单省市二级联动
2019/11/27 Javascript
使用 Python 实现微信公众号粉丝迁移流程
2018/01/03 Python
python通过微信发送邮件实现电脑关机
2018/06/20 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
python并发编程多进程之守护进程原理解析
2019/08/20 Python
关于Python3 类方法、静态方法新解
2019/08/30 Python
Python解压 rar、zip、tar文件的方法
2019/11/19 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
2020/01/02 Python
python实现tail -f 功能
2020/01/17 Python
Python timer定时器两种常用方法解析
2020/01/20 Python
python实现人像动漫化的示例代码
2020/05/17 Python
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
2013/01/09 HTML / CSS
canvas画图被放大且模糊的解决方法
2020/08/11 HTML / CSS
英国领先的游戏零售商:GAME
2019/09/24 全球购物
2014基层党员干部学习全国两会心得体会
2014/03/17 职场文书
我的中国梦口号
2014/06/16 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
2015年世界无烟日活动方案
2015/05/04 职场文书
Mysql Online DDL的使用详解
2021/05/20 MySQL
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python
python 对图片进行简单的处理
2021/06/23 Python