php教程获取flv视频时间长度代码
echo fn(236722); //时间显示格式0:03:56function bigendian2int($byte_word, $signed = false) {
$int_value = 0;
:$byte_wordlen = strlen($byte_word);
for ($i = 0; $i
{
$int_value = ord($byte_word{$i}) * pow (256, ($byte_wordlen - 1 - $i));
IF ($signed)
{
$sign_mask_bit = 0x80
如果 ($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,eek_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,eek_cur);
★}
★$持续时间 = 0;
while ((ftell($fp) 1)
$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,eek_set);
★}
fclose($fp);
返回$持续时间;
}
函数 fn($time){
$num = $time;
$sec = intval($num / 1000);$h = intval($sec / 3600);
echo gettime("27729.flv");//显示数字时间如236722
$m = intval(($sec % 3600) / 60);
$s = intval(($sec % 60 ));
$tm = $h 。 ':'。百万美元。 ':'。 $s;
返回$tm;
★}