【发布时间】:2011-09-07 01:55:20
【问题描述】:
当我尝试获取 flv 视频文件的长度时,我得到 0 秒,因为它只发生在某些视频中,否则我的功能可以正常工作。
下面是我的代码。
<?php
function mbmGetFLVDuration($file){
// read file
if (file_exists($file)){
$handle = fopen($file, "r");
$contents = fread($handle, filesize($file));
fclose($handle);
//
if (strlen($contents) > 3){
if (substr($contents,0,3) == "FLV"){
$taglen = hexdec(bin2hex(substr($contents,strlen($contents)-3)));
if (strlen($contents) > $taglen){
$duration = hexdec(bin2hex(substr($contents,strlen($contents)-$taglen,3))) ;
return $duration;
}
}
}
}
}
// not working video file
$result = ceil(mbmGetFLVDuration('not_working_copy.flv')/1000);
// working video file
//$result = ceil(mbmGetFLVDuration('working_copy.flv')/1000);
echo date('H:i:s',mktime(0,0,$result))
?>
我在下面的链接中附上了工作和不工作的flv视频:
工作视频: http://blog.developeronhire.com/wp-content/uploads/downloads/2011/06/working_copy.flv
不工作的视频: http://blog.developeronhire.com/wp-content/uploads/downloads/2011/06/not_working_copy.flv
任何想法都会受到赞赏。
谢谢
【问题讨论】:
-
@Mr.黑色:对不起朋友,它没有被复制。请先阅读我的问题并发表评论。
-
在一个文件上工作而在另一个文件上不起作用,这是获取flv文件视频长度的重复问题吗?