利用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 相关文章推荐
用PHP动态创建Flash动画
Oct 09 PHP
THINKPHP+JS实现缩放图片式截图的实现
Mar 07 PHP
php数据库连接时容易出错的特殊符号问题
Sep 01 PHP
PHP开发需要注意的安全问题
Sep 01 PHP
详解PHP中strlen和mb_strlen函数的区别
Mar 07 PHP
Java和PHP在Web开发方面对比分析
Mar 01 PHP
10款PHP开源商城系统汇总介绍
Jul 23 PHP
Zend Framework动作助手Url用法详解
Mar 05 PHP
php实现微信原生支付(扫码支付)功能
May 30 PHP
php传值和传引用的区别点总结
Nov 19 PHP
php的无刷新操作实现方法分析
Feb 28 PHP
微信小程序和php的登录实现
Apr 01 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错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
用户注册常用javascript代码
2009/08/29 Javascript
jQuery Validation实例代码 让验证变得如此容易
2010/10/18 Javascript
js给onclick事件赋值,动态传参数实例解说
2013/03/28 Javascript
用JavaScript实现对话框的教程
2015/06/04 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
Js调用Java方法并互相传参的简单实例
2016/08/11 Javascript
BootStrap modal模态弹窗使用小结
2016/10/26 Javascript
详解在 Angular 项目中添加 clean-blog 模板
2017/07/04 Javascript
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
在Python3中初学者应会的一些基本的提升效率的小技巧
2015/03/31 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
浅谈python之新式类
2018/08/12 Python
python实现大转盘抽奖效果
2019/01/22 Python
python如何实现从视频中提取每秒图片
2020/10/22 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
2020/02/27 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
Python3 中sorted() 函数的用法
2020/03/24 Python
golang/python实现归并排序实例代码
2020/08/30 Python
Python 开发工具通过 agent 代理使用的方法
2020/09/27 Python
python实现马丁策略回测3000只股票的实例代码
2021/01/22 Python
对CSS3选择器的研究(详解)
2016/09/16 HTML / CSS
CSS3 旋转立方体问题详解
2020/01/09 HTML / CSS
用Java语言将一个键盘输入的数字转化成中文输出
2013/01/25 面试题
最新奶茶店创业计划书
2014/01/25 职场文书
园林系毕业生求职信
2014/06/23 职场文书
校庆标语集锦
2014/06/25 职场文书
医院病假条范文
2015/08/17 职场文书
《称赞》教学反思
2016/02/17 职场文书
Python排序算法之插入排序及其优化方案详解
2021/06/11 Python