好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php获取flv视频时间长度代码 - php函数

php获取flv视频时间长度代码

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  gettime( $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 ) {             //开源代码phpfensi测试数据      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 ;          }           function  fn( $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 ;          }         echo  gettime( "27729.flv" ); //显示数字时间如236722          echo  fn(236722);  //显示时间格式0:03:56  

查看更多关于php获取flv视频时间长度代码 - php函数的详细内容...

  阅读:36次