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 相关文章推荐
我的群发邮件程序
Oct 09 PHP
非常不错的MySQL优化的8条经验
Mar 24 PHP
php &amp;&amp; 逻辑与运算符使用说明
Mar 04 PHP
PHP GD 图像处理组件的常用函数总结
Apr 28 PHP
php单例模式实现(对象只被创建一次)
Dec 05 PHP
php selectradio和checkbox默认选择的实现方法详解
Jun 29 PHP
PHP中通过fopen()函数访问远程文件示例
Nov 18 PHP
Yii2使用swiftmailer发送邮件的方法
May 03 PHP
解决yii2左侧菜单子级无法高亮问题的方法
May 08 PHP
php将服务端的文件读出来显示在web页面实例
Oct 31 PHP
php传值和传引用的区别点总结
Nov 19 PHP
KindEditor在php环境下上传图片功能集成的方法示例
Jul 20 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
yii2实现根据时间搜索的方法
2016/05/25 PHP
php的4种常用运行方式详解
2016/12/22 PHP
详解Yii实现分页的两种方法
2017/01/14 PHP
PHP实现的常规正则验证helper公共类完整实例
2017/04/27 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
node.js中的path.resolve方法使用说明
2014/12/08 Javascript
详解JavaScript时间格式化
2015/12/23 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
2016/08/23 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
jQuery实现给input绑定回车事件的方法
2017/02/09 Javascript
vue如何从接口请求数据
2017/06/22 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
vue实现留言板todolist功能
2017/08/16 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
原生js实现省市区三级联动代码分享
2018/02/12 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
2018/12/28 Javascript
原生JS实现随机点名项目的实例代码
2019/04/30 Javascript
jquery将信息遍历到界面上实例代码
2020/01/21 jQuery
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
js实现盒子拖拽动画效果
2020/08/09 Javascript
Python中的jquery PyQuery库使用小结
2014/05/13 Python
Python网络爬虫实例讲解
2016/04/28 Python
使用python Fabric动态修改远程机器hosts的方法
2018/10/26 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
基于pytorch 预训练的词向量用法详解
2020/01/06 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
2020/02/11 Python
Python函数生成器原理及使用详解
2020/03/12 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
没编程基础可以学python吗
2020/06/17 Python
奥地利领先的在线药房:SHOP APOTHEKE
2019/10/07 全球购物
文明城市创建标语
2014/06/16 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
财务部岗位职责范本
2015/04/14 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书
导游词之西递宏村
2019/12/10 职场文书