Felix Riesterer: FLV - Abmessungen und Aspect Ratio

Beitrag lesen

Lieber Christoph,

Dein Code ist wesentlich schlanker, als der von Klawischnigg. Ich habe daher die Klasse, die ich mir aus Klawischniggs Code gebastelt habe, durch eine aus Deinem Code ersetzt. Falls es einmal wer gebrauchen kann, hier der Code:

class FLVDimensionsChecker {  
  
    var $filename;  
    var $width;  
    var $height;  
    var $aspectRatio;  
    var $error = 'No video dimensions detected!';  
  
    function FLVDimensionsChecker($f) {  
        $this->filename = $f;  
        $file = @fopen($f, 'rb');  
  
        if ($file === false)  
            $this->error = 'File not found!';  
  
        $header = fread($file, 2048);  
        fclose($file);  
  
        if ($header !== false) {  
            $this->width = $this->flvdim_get($header, 'width');  
            $this->height = $this->flvdim_get($header, 'height');  
            $this->aspectRatio = ($this->width / $this->height);  
            $this->error = '';  
        }  
    }  
  
    function flvdim_get($header, $field) {  
        $pos = strpos($header, $field);  
        if ($pos === false)  
            return 0;  
        else $pos += strlen($field) + 2;  
  
        return $this->flvdim_decode(ord($header[$pos]), ord($header[$pos + 1]));  
    }  
  
    function flvdim_decode($byte1, $byte2) {  
        $high1 = $byte1 >> 4;  
        $high2 = $byte2 >> 4;  
        $low1 = $byte1 & 0x0f;  
  
        $mantissa = ($low1 << 4) | $high2;  
        return (2 << $high1) + (($mantissa << $high1) >> 7);  
    }  
}

Liebe Grüße,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)