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 实现多服务器共享 SESSION 数据
Aug 15 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
Mar 27 PHP
PHP以及MYSQL日期比较方法
Nov 29 PHP
php-cli简介(不会Shell语言一样用Shell)
Jun 03 PHP
PHP实现的多彩标签效果代码分享
Aug 21 PHP
PHP中shuffle数组值随便排序函数用法
Nov 21 PHP
php操作redis缓存方法分享
Jun 03 PHP
PHP数组去重比较快的实现方式
Jan 19 PHP
详解PHP防止直接访问.php 文件的实现方法
Jul 28 PHP
laravel请求参数校验方法
Oct 10 PHP
ThinkPHP5分页paginate代码实例解析
Nov 10 PHP
discuz论坛更换域名,详细文件修改步骤
Dec 09 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 流程控制switch的简单实例
2016/06/07 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
php 处理png图片白色背景色改为透明色的实例代码
2018/12/10 PHP
Yii框架Session与Cookie使用方法示例
2019/10/14 PHP
javascript编程起步(第一课)
2007/01/10 Javascript
javascript this用法小结
2008/12/19 Javascript
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
jquery删除table当前行的实例代码
2016/10/07 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
ES6中Iterator与for..of..遍历用法分析
2017/03/31 Javascript
VUE实现表单元素双向绑定(总结)
2017/08/08 Javascript
浅谈mint-ui loadmore组件注意的问题
2017/11/08 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
JS实现的冒泡排序,快速排序,插入排序算法示例
2019/03/02 Javascript
vue插槽slot的理解和使用方法
2019/04/03 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
2020/07/17 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
Python实现保证只能运行一个脚本实例
2015/06/24 Python
理解python正则表达式
2016/01/15 Python
Python json 错误xx is not JSON serializable解决办法
2017/03/15 Python
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
详解用python生成随机数的几种方法
2019/08/04 Python
Python数据分析库pandas高级接口dt的使用详解
2020/12/11 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
2021/02/02 Python
如何利用input事件来监听移动端的输入
2016/04/15 HTML / CSS
销售所有的狗狗产品:Dog.com
2016/10/13 全球购物
信息系统专业个人求职信范文
2013/12/07 职场文书
工作保证书范文
2014/04/29 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
2015年元旦标语大全
2014/12/09 职场文书
财务人员廉洁自律心得体会
2016/01/13 职场文书
电工实训心得体会
2016/01/14 职场文书
PyTorch device与cuda.device用法
2022/04/03 Python