利用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实现MVC开发得最简单的方法――模型
Apr 10 PHP
PHP 数据库树的遍历方法
Feb 06 PHP
PHP has encountered an Access Violation 错误的解决方法
Jan 17 PHP
PHP Array交叉表实现代码
Aug 05 PHP
《PHP编程最快明白》第七讲:php图片验证码与缩略图
Nov 01 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
May 07 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
Aug 22 PHP
PHP判断网络文件是否存在的方法
Mar 12 PHP
php常量详细解析
Oct 27 PHP
thinkPHP统计排行与分页显示功能示例
Dec 02 PHP
PHP new static 和 new self详解
Feb 19 PHP
php用户名的密码加密更安全的方法
Jun 21 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 中使用随机数的三个步骤
2006/10/09 PHP
PHP的SQL注入过程分析
2012/01/06 PHP
PHP fopen 读取带中文URL地址的一点见解
2012/09/25 PHP
配置php网页显示各种语法错误
2013/09/23 PHP
PHP中应该避免使用同名变量(拆分临时变量)
2015/04/03 PHP
php注册和登录界面的实现案例(推荐)
2016/10/24 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
关于jQuery中的end()使用方法
2011/07/10 Javascript
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
2013/03/26 Javascript
你必须知道的Javascript知识点之&quot;字面量和对应类型&quot;说明介绍
2013/04/23 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
2013/08/02 Javascript
js 三级关联菜单效果实例
2013/08/13 Javascript
jQuery函数map()和each()介绍及异同点分析
2014/11/08 Javascript
nodejs简单实现中英文翻译
2015/05/04 NodeJs
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
2017/12/01 Javascript
微信小程序实现留言板(Storage)
2018/11/02 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
2019/04/04 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
2019/06/10 jQuery
Vue根据条件添加click事件的方式
2019/11/09 Javascript
Python中的XML库4Suite Server的介绍
2015/04/14 Python
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
python 从csv读数据到mysql的实例
2018/06/21 Python
利用Python正则表达式过滤敏感词的方法
2019/01/21 Python
Python闭包和装饰器用法实例详解
2019/05/22 Python
三步实现Django Paginator分页的方法
2019/06/11 Python
Python将string转换到float的实例方法
2019/07/29 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
pymysql模块的操作实例
2019/12/17 Python
2分钟教你实现环形/扇形菜单(基础版)
2020/01/15 HTML / CSS
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
《逃家小兔》教学反思
2014/02/23 职场文书
师德师风的心得体会
2014/09/02 职场文书
长城的导游词
2015/01/30 职场文书
研究生导师推荐信
2015/03/25 职场文书
零基础学java之循环语句的使用
2022/04/10 Java/Android
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers