首页 >php教程 >php手册 >php获取flv视频时间长度代码

php获取flv视频时间长度代码

WBOY
WBOY原创
2016-06-13 11:23:59898浏览

php教程获取flv视频时间长度代码


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

$m = intval(($sec % 3600) / 60); 
 
$s = intval(($sec % 60 )); 
 
$tm = $h 。 ':'。百万美元。 ':'。 $s; 
 
返回$tm; 
 
★}   

echo gettime("27729.flv");//显示数字时间如236722   
echo fn(236722); //时间显示格式0:03:56 
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn