PHP实现获取FLV文件的时间

 这篇文章主要介绍了PHP实现获取FLV文件的时间,本文直接给出实现代码和使用方法,需要的朋友可以参考下

 
 

PHP如何获取FLV文件时间呢,答案是fopen文件后查看FLV文件是HEX数据,并转换为number。

 

代码如下:

<?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”)即可。

 

时间: 2024-10-31 21:33:01

PHP实现获取FLV文件的时间的相关文章

PHP实现获取FLV文件的时间_php实例

PHP如何获取FLV文件时间呢,答案是fopen文件后查看FLV文件是HEX数据,并转换为number. 复制代码 代码如下: <?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_wo

php获取音乐文件播放时间

 代码如下 复制代码 $file = "C:/Users/Public/Music/Sample Music/Kalimba.mp3";   if (!file_exists($file)) {     exit('媒体文件不存在.'); }   // 创建一个Windows Media Player接口 $player = new COM("WMPlayer.OCX"); $media  = $player->newMedia($file);   // 获取

用VBS写了一个获取下载文件的时间

代码如下: set xc=CreateObject("microsoft.xmlhttp") xc.open "get","http://www.sohu.com",false xc.send() set gg=createobject("adodb.stream") gg.type=1 gg.mode=3 gg.open gg.write xc.responsebody gg.savetofile "sohu.tx

VC++实现文件夹时间属性的获取与更改

引言: 对于大多数的IT企业和绝大多数的个人用户而言,数据的备份主要是对 数据内容的简单备份,而很少涉及对备份数据自身属性如文件属性.所在文件夹的时间属 性等内容的备份.而在某些对数据管理有着非常严格要求的特殊行业中,对以上这些相关 属性信息的备份也是同等重要的.但是在目前的Windows操作系统下,不论是直接通过手 工进行数据备份还是通过某些数据备份软件来进行,都难以将这些信息完全保持原貌复制 过来,尤其对于每时每刻均在发生变化的时间属性更是难以保持其原始信息.不仅如此, 在Windows操作

PHP从FLV文件获取视频预览图的方法

 这篇文章主要介绍了PHP从FLV文件获取视频预览图的方法,实例分析了php操作flv文件获取截图的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了PHP从FLV文件获取视频预览图的方法.分享给大家供大家参考.具体实现方法如下:   代码如下: <?php // references http://www.longtailvideo.com/support/forum/Modules/12661/External-PHP-with-FFmpeg-using-readfil

PHP从FLV文件获取视频预览图的方法_php技巧

本文实例讲述了PHP从FLV文件获取视频预览图的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <?php // references http://www.longtailvideo.com/support/forum/Modules/12661/External-PHP-with-FFmpeg-using-readfile- // generate a preview image from an FLV file on-the-fly, or to save // ca

asp.net服务器端获取客户端文件的创建时间

问题描述 asp.net服务器端获取客户端文件的创建时间 asp.net系统客户端批量上传文件,怎么在服务器端获取客户端的这些文件的创建时间!

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));    } 

Dreamweaver插入FLV文件

  一.插入FLV文件 1. 打开HTML文档,点击"插入"菜单,选择"媒体"命令,在弹出的子菜单中选择"FLV"项: 图1 2. 选择"FLV"项后,弹出"插入 FLV"对话框,如下图所示: 图2 ①"视频类型"选择:在"视频类型"项中可以选择"累进式下载视频"或"流视频". ②"URL"项填写:在url中