php getID3返回更新文件的相同信息?

时间:2016-08-29 15:04:51

标签: php video getid3

我正在使用getID3库来获取远程视频文件的详细信息。我正在尝试读取文件的一部分以获取文件的详细信息,但有些视频在开始时没有完整的详细信息。

对于这些视频,我正在尝试下载完整视频,然后提取相关信息。但是,即使视频完全下载后,getID3-> analyze($ filename)也会返回相同的错误文件信息。

但是当我复制视频,然后在复制的视频上运行函数analyze($ filename.'copied.mp4')时,即使文件内容相同,它也会返回正确的信息。也许getID3没有再次加载视频,但是,如何在不复制视频的情况下解决此问题。

请找到以下代码。

if ($fp_remote = fopen($remotefilename, 'r')) {
    echo 'conn opened'; 
    $localtempfilename = tempnam('/home/xerox/abc', 'whateva').'.mp4';
    if ($fp_local = fopen($localtempfilename, 'wb')) {
        $count = 0;
        $countExpiry = 8;
        while ($buffer = fread($fp_remote, 8192)) {
            $count++;
            fwrite($fp_local, $buffer);
            if ($count >= $countExpiry) {
                fflush($fp_local);
                $getID3 = new getID3;
                $ThisFileInfo = $getID3->analyze($localtempfilename);
                if ($ThisFileInfo["error"]){
                    print "problem encouterd";
                    $countExpiry += 1000;
                } else {
                 break;}
            }
        }
        fclose($fp_local);
        $getID31 = new getID3;
        copy ( $localtempfilename, $localtempfilename.'_copied.mp4' );
        $ThisFileInfoz = $getID31->analyze($localtempfilename.'_copied.mp4');
        // Delete temporary file
        unlink($localtempfilename);
        fclose($fp_remote);
    var_dump($ThisFileInfoz);
    }

}

1 个答案:

答案 0 :(得分:0)

致电clearstatcache解决了我的问题,

  

因为对文件大小的重复调用将被缓存   filesystem和getID3不会超出文件结尾。

来源:James Heinrich, developer of getID3