设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP实现获取FLV文件的时间

发布时间:2022-07-27 12:51 所属栏目:121 来源:互联网
导读:这篇文章主要介绍了PHP实现获取FLV文件的时间,本文直接给出实现代码和使用方法,需要的朋友可以参考下 PHP如何获取FLV文件时间呢,答案是fopen文件后查看FLV文件是HEX数据,并转换为number。 代码如下: ?php functionBigEndian2Int($byte_word,$signed=false) {
  这篇文章主要介绍了PHP实现获取FLV文件的时间,本文直接给出实现代码和使用方法,需要的朋友可以参考下
 
  PHP如何获取FLV文件时间呢,答案是fopen文件后查看FLV文件是HEX数据,并转换为number。
 
  代码如下:
 
  <?php
 
  functionBigEndian2Int($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;
 
  }
 
  functiongetTime($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;
 
  }
 
  functionget_flv_file_time($time)
 
  {
 
  $time=getTime($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;
 
  }
 
  ?>
 
  直接使用get_flv_file_time(“你的FLV.flv”)即可。
 

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读