时间:2021-05-26
复制代码 代码如下:
<?php
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
?>
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
PHP如何获取FLV文件时间呢,答案是fopen文件后查看FLV文件是HEX数据,并转换为number。复制代码代码如下:
本文实例讲述了PHP从FLV文件获取视频预览图的方法。分享给大家供大家参考。具体实现方法如下:复制代码代码如下:希望本文所述对大家的php程序设计有所帮助。
当时获得视频长度是采用网上的通用的获得flv视频文件长度的方法,但是这个方法只对flv视频支持,其他格式的视频获取到的值就很差了,下面在介绍一种:利用ffmpe
本文实例讲述了PHP实现获取毫秒时间戳的方法。分享给大家供大家参考,具体如下:PHP获取毫秒时间戳,利用microtime()函数php本身没有提供返回毫秒数的
在Smarty中获取当前日期时间和格式化日期时间与PHP中有些不同的地方,这里就为您详细介绍:首先是获取当前的日期时间:在PHP中我们会使用date函数来获取当