Copy CodeThe code is as follows:
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 ($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");//display digital time like 236722
ECHO fn (236722); Show time Format 0:03:56
?>
The above describes the FLV Video editor PHP flv video time acquisition function, including the content of the FLV video Editor, I hope to be interested in PHP tutorial friends helpful.