Utilitaires
Scripts
Divers
Jeux
Rechercher
Quillevere.net
Réflexions informatiques

Récupérer la résolution d'un fichier Flash (SWF ou FLV)

23/10/2009
Pouvoir récupérer les dimensions d'un fichier Flash directement en PHP est intéressant dans la mesure où ça permet de prévoir la taille d'un lecteur vidéo.

Voici comment le faire, selon que le Flash soit du SWF (objet vectoriel) ou du FLV (vidéo) :

Fichier SWF

La fonction getimagesize permet de renvoyer hauteur et largeur :
print_r(getimagesize($fichier_swf))

Fichier  FLV

Je n'ai pas écrit cette fonction mais j'ai pu la rencontrer à force de chercher (je remercie au passage son auteur). Je l'ai trouvé au hasard d'un forum sur Stack Overflow.
print_r(flvdim($fichier_flv))

function flvdim($name)
  {
  $file = @fopen($name, 'rb');
  if($file === false)
  return false;

  $header = fread($file, 2048);
  fclose($file);
  if($header === false)
  return false;

  return array(
  'width' => flvdim_get($header, 'width'),
  'height' => flvdim_get($header, 'height')
  )
}

function flvdim_get($header, $field)
  {
  $pos = strpos($header, $field);
  if($pos === false)
  return false;

  $pos += strlen($field) + 2;
  return 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 ((256 + $mantissa) << $high1) >> 7;
  }

Cas général

Voici le code permettant de renvoyer automatiquement les dimensions d'un SWF ou d'un FLV :
function getDimensionsFlash($fichier)
    {
    $largeur=null; $hauteur=null;
    $infosFichier=pathinfo($fichier);
    switch (strtolower($infosFichier['extension']))
        {
        case "swf":
            $infosTaille=getimagesize($fichier);
            $largeur=$infosTaille[0];
            $hauteur=$infosTaille[1];
            break;
   
        case "flv";
            $infosTaille=flvdim($fichier);
            $largeur=$infosTaille["width"];
            $hauteur=$infosTaille["height"];
            break;  
        }  
    return Array("largeur"=>$largeur, "hauteur"=>$hauteur);
    }
Dernière modification le 09/03/2019 - Quillevere.net

Rechercher sur le site

rss RSS info Informations