• 技术文章 >后端开发 >php教程

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

    2016-07-20 11:08:03原创380
    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) {

      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


    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/444906.htmlTechArticlephp教程获取flv视频时间长度代码 function bigendian2int($byte_word, $signed = false) { $int_value = 0; $byte_wordlen = strlen($byte_word); for ($i = 0; $i $byte_wordlen;...

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 获取 flv 视频 时间 长度 代码 php 教程 获取 flv 视频 时间 长度 代码 function bi
    上一篇:php自动采集内容中带有图片地址的远程图片保存到本地_PHP教程 下一篇:php 静态文件生成类_PHP教程
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• PHP面试之常见基础算法(附代码示例)• 关于在PHP里的跳转的一个有关问题• 判断是不是合符规格的url• 装配及配置eaccelerator-0.9.5加速PHP-5.2.1• PHP开源论坛~YouYaX_V10版本公布
    1/1

    PHP中文网