首页 后端开发 php教程 哪位兄弟能帮忙注解一下这段程序?该怎么处理

哪位兄弟能帮忙注解一下这段程序?该怎么处理

Jun 13, 2016 am 10:13 AM
byte data header length

哪位兄弟能帮忙注解一下这段程序?
功能是取得flv视频的时间,是网上找的,但是很多地方不明白。。。

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->function BigEndian2Int($byte_word, $signed = false) {         $int_value = 0;        $byte_wordlen = strlen($byte_word);                for ($i = 0; $i  $flv_header_frame_length) {       fseek($fp, $frame_size_data_length - $flv_header_frame_length, SEEK_CUR);    }    $duration = 0;    while ((ftell($fp) + 1)  $duration) {          $duration = $timestamp;         }          fseek($fp, $next_offset, SEEK_SET);    }     fclose($fp);    return $duration;    }    //转化为0:03:56的时间格式    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;         } $t = getTime("/tmp/907701336.flv");//显示数字时间如236722 echo fn($t);//显示时间格式0:03:56
登录后复制


对 BigEndian2Int这个函数看不懂,以及getTimes里面的一些数字 有什么意思?

------解决方案--------------------
根据 FLV 文件格式的规定
FLV包括文件头(File Header)和文件体(File Body)两部分,其中文件体由一系列的Tag及Tag Size对组成。Tag包括Tag Header和Tag Data两部分。
Tag Header 的 
第5-7字节为UI24类型的值,表示该Tag的时间戳(单位为ms)
第8个字节为时间戳的扩展字节,当24位数值不够时,该字节作为最高位将时间戳扩展为32位值

只要将这一系列的时间戳加起来就得到了整个播放时间

UI24类型 占 3 个字节,高位在前
所以程序中有 
$int_value += ord($byte_word{$i}) * pow(256, ($byte_wordlen - 1 - $i));
这个写法很烂,还用到了 pow
你也可以修改他,基础算式
令传入串 $s,有 ( ord($s{0}) * 256 + ord($s{1}) ) * 256 + ord($s{2})
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

linux的header是什么意思 linux的header是什么意思 Jul 18, 2023 pm 03:34 PM

linux的header是指在文件或数据流中的开头部分,用于包含关于内容的元数据,通过正确地编写和使用Header文件,开发者能够更好地利用系统资源,提高代码的可读性和可维护性。

SpringBoot怎么通过Feign调用传递Header中参数 SpringBoot怎么通过Feign调用传递Header中参数 May 16, 2023 pm 08:38 PM

【SpringBoot】通过Feign调用传递Header中参数如何通过Feign传递Header参数问题描述我们在SpringCloud中使用Feign请求另一个服务的Api接口时,有将Header中参数传递下去的需求,如果不做特殊处理,就会将Header中的参数丢失。解决方案方案一:通过@RequestHeader(name="headerName")来传递例如:Feign定义如下@FeignClient(name="service-name")pub

使用java的String.length()函数获取字符串的长度 使用java的String.length()函数获取字符串的长度 Jul 25, 2023 am 09:09 AM

使用Java的String.length()函数获取字符串的长度在Java编程中,字符串是一种非常常见的数据类型,我们经常需要获取字符串的长度,即字符串中字符的个数。在Java中,我们可以使用String类的length()函数来获取字符串的长度。下面是一个简单的示例代码:publicclassStringLengthExample{publ

Golang函数的byte、rune和string类型转换技巧 Golang函数的byte、rune和string类型转换技巧 May 17, 2023 am 08:21 AM

在Golang编程中,byte、rune和string类型是非常基础、常见的数据类型。它们在处理字符串、文件流等数据操作时发挥着重要作用。而在进行这些数据操作时,我们通常需要对它们进行相互的转换,这就需要掌握一些转换技巧。本文将介绍Golang函数的byte、rune和string类型转换技巧,旨在帮助读者更好地理解这些数据类型,并能够熟练地在编程实践中应用

如何使用PHP header()方法来调整网页 如何使用PHP header()方法来调整网页 Mar 28, 2023 pm 01:54 PM

PHP是一种功能强大的编程语言,可以用来创建动态网站和Web应用程序。其中一个最强大的功能之一是PHP的header()方法。在本文中,我们将探讨如何使用PHP的header()方法来调整网页。

1byte等于多少bit 1byte等于多少bit Mar 19, 2021 pm 02:52 PM

1byte等于8bit。数据存储是以“字节”(Byte)为单位,数据传输大多是以“位”(bit)为单位,一个位就代表一个0或1(即二进制),每8个位(bit)组成一个字节(Byte),是最小一级的信息单位;因而,“1Byte=8bit”。

html5标签head和header有什么区别 html5标签head和header有什么区别 Jan 17, 2022 am 11:10 AM

区别:1、head标签用于定义文档头部,它是所有头部元素的容器,而header标签用于定义文档的页眉(介绍信息);2、浏览器都支持head标签,而旧版本浏览器均不支持header标签,需要IE9+以上浏览器才支持header标签。

php header头怎么实现跳转 php header头怎么实现跳转 Dec 02, 2022 am 09:14 AM

php header实现跳转的方法:1、使用“Header("Location:$url");”语法实现跳转;2、使用if判断式实现跳转,其跳转语句如“if($_COOKIE["u_type"]){ header('location:register.php'); } else{ setcookie('u_type','1','86400*360');”。

See all articles