Il faut un serveur dédiée équipé du module FFMPEG et on peut récup la durée d'une vidéo en faisant ça par exemple :
$infoVideo = shell_exec("/usr/bin/ffmpeg -i \"".$CHEMIN_DU_FICHIER."\" 2>&1");
preg_match('/Duration: (.*?),/', $infoVideo, $matches);
$d = explode(":",$matches[1]);
$duration = $d[0]*3600+$d[1]*60+$d[2];
Comme tu dis c'est pas simple :)