源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

PHP实现获取FLV文件的时间

  • 时间:2021-01-27 09:56 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:PHP实现获取FLV文件的时间
PHP如何获取FLV文件时间呢,答案是fopen文件后查看FLV文件是HEX数据,并转换为number。
[u]复制代码[/u] 代码如下:
<?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”)即可。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部