Php obtains the flv video time length code. The code functionbigendian2int ($ byte_word, $ signedfalse) {$ int_value0; $ byte_wordlenstrlen ($ byte_word); for ($ i0; $ I $ byte_wordlen; php Tutorial to get the flv video time length code
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}) x 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"); // display the numeric time, such as 236722
Echo fn (236722); // Display time format 0:03:56
Using function bigendian2int ($ byte_word, $ signed = false) {$ int_value = 0; $ byte_wordlen = strlen ($ byte_word); for ($ I = 0; $ I $ byte_wordlen ;...