利用php获得flv视频长度的实例代码


Posted in PHP onOctober 26, 2017

废话不多说了,直接给大家贴代码了,具体代码如下所示:

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 getFlvDuration($name){ 
  if(!file_exists($name)){ 
    return; 
  } 
  $flv_data_length=filesize($name); 
  $fp = @fopen($name, 'r'); 
  $flv_header = fread($fp, 5); 
  fseek($fp, 5, SEEK_SET); 
  $frame_size_data_length = $this->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     = $this->BigEndian2Int(substr($this_tag_header, 5, 3)); 
     $timestamp      = $this->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; 
} 
//转化为0:03:56的时间格式 
function getFlvTime($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; 
}

总结

以上所述是小编给大家介绍的利用php获得flv视频长度的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
js下函数般调用正则的方法附代码
Jun 22 PHP
php str_pad 函数使用详解
Jan 13 PHP
php动态生成JavaScript代码
Mar 09 PHP
解析php中两种缩放图片的函数,为图片添加水印
Jun 14 PHP
PHP实现懒加载的方法
Mar 07 PHP
php htmlentities()函数的定义和用法
May 13 PHP
php基于openssl的rsa加密解密示例
Jul 11 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
Nov 03 PHP
PHP中快速生成随机密码的几种方式
Apr 17 PHP
微信推送功能实现方式图文详解
Jul 12 PHP
PHP 图片合成、仿微信群头像的方法示例
Oct 25 PHP
七种PHP开发环境搭建工具
Jun 28 PHP
PHP 中魔术常量的实例详解
Oct 26 #PHP
yii框架redis结合php实现秒杀效果(实例代码)
Oct 26 #PHP
PHP对象的浅复制与深复制的实例详解
Oct 26 #PHP
PHP中的浅复制与深复制的实例详解
Oct 26 #PHP
thinkPHP5实现数据库添加内容的方法
Oct 25 #PHP
thinkPHP5分页功能实现方法分析
Oct 25 #PHP
thinkPHP框架中执行原生SQL语句的方法
Oct 25 #PHP
You might like
php array_search() 函数使用
2010/04/13 PHP
使用session判断用户登录用户权限(超简单)
2013/06/08 PHP
php中session退出登陆问题
2014/02/27 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
微信支付PHP SDK之微信公众号支付代码详解
2015/12/09 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
围观tangram js库
2010/12/28 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
javascript cookie用法基础教程(概念,设置,读取及删除)
2016/09/20 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
2016/12/12 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
利用Vue实现移动端图片轮播组件的方法实例
2017/08/23 Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
2017/10/23 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
vue.js多页面开发环境搭建过程
2019/04/24 Javascript
webpack4之如何编写loader的方法步骤
2019/06/06 Javascript
Node.js系列之连接DB的方法(3)
2019/08/30 Javascript
js实现小时钟效果
2020/03/25 Javascript
[01:04:20]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.29
2020/12/02 DOTA
python网络编程学习笔记(一)
2014/06/09 Python
Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】
2019/05/23 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
详解Pycharm安装及Django安装配置指南
2020/09/15 Python
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
广州品高软件.net笔面试题目
2012/04/18 面试题
linux面试题参考答案(7)
2012/10/29 面试题
最新大学毕业求职简历的自我评价
2013/10/18 职场文书
个人自荐信
2013/12/05 职场文书
消防先进事迹材料
2014/02/10 职场文书
运动会新闻报道稿
2015/07/22 职场文书
停车场管理制度范本
2015/08/05 职场文书
大学校园招聘会感想
2015/08/10 职场文书
Python-OpenCV实现图像缺陷检测的实例
2021/06/11 Python