Saltar al contenido

¿Cómo obtener la duración, la dimensión y el tamaño del video en PHP?

Hola, encontramos la solución a tu pregunta, continúa leyendo y la verás aquí.

Solución:

getID3 admite formatos de video. Ver: http://getid3.sourceforge.net/

Editar: Entonces, en formato de código, sería como:

include_once('pathto/getid3.php');
$getID3 = new getID3;
$file = $getID3->analyze($filename);
echo("Duration: ".$file['playtime_string'].
" / Dimensions: ".$file['video']['resolution_x']." wide by ".$file['video']['resolution_y']." tall".
" / Filesize: ".$file['filesize']." bytes
");

Nota: ¡Debe incluir las clases getID3 antes de que esto funcione! Ver el enlace de arriba.

Editar: si tiene la capacidad de modificar la instalación de PHP en su servidor, una extensión de PHP para este propósito es ffmpeg-php. Ver: http://ffmpeg-php.sourceforge.net/

Si tiene FFMPEG instalado en su servidor (http://www.mysql-apache-php.com/ffmpeg-install.htm), es posible obtener el attributes de su video usando el comando “-vstats” y analizar el resultado con algunas expresiones regulares, como se muestra en el ejemplo a continuación. Luego, necesita la función de PHP tamaño de archivo () para obtener el tamaño.

$ffmpeg_path = 'ffmpeg'; //or: /usr/bin/ffmpeg , or /usr/local/bin/ffmpeg - depends on your installation (type which ffmpeg into a console to find the install path)
$vid = 'PATH/TO/VIDEO'; //Replace here!

 if (file_exists($vid)) 

    $finfo = finfo_open(FILEINFO_MIME_TYPE);
    $mime_type = finfo_file($finfo, $vid); // check mime type
    finfo_close($finfo);

    if (preg_match('/video/*/', $mime_type)) 

        $video_attributes = _get_video_attributes($vid, $ffmpeg_path);

        print_r('Codec: ' . $video_attributes['codec'] . '
'); print_r('Dimension: ' . $video_attributes['width'] . ' x ' . $video_attributes['height'] . '
'); print_r('Duration: ' . $video_attributes['hours'] . ':' . $video_attributes['mins'] . ':' . $video_attributes['secs'] . '.' . $video_attributes['ms'] . '
'); print_r('Size: ' . _human_filesize(filesize($vid))); else print_r('File is not a video.'); else print_r('File does not exist.'); function _get_video_attributes($video, $ffmpeg) $command = $ffmpeg . ' -i ' . $video . ' -vstats 2>&1'; $output = shell_exec($command); $regex_sizes = "/Video: ([^,]*), ([^,]*), ([0-9]1,4)x([0-9]1,4)/"; // or : $regex_sizes = "/Video: ([^rn]*), ([^,]*), ([0-9]1,4)x([0-9]1,4)/"; (code from @1owk3y) if (preg_match($regex_sizes, $output, $regs)) $codec = $regs [1] ? $regs [1] : null; $width = $regs [3] ? $regs [3] : null; $height = $regs [4] ? $regs [4] : null; $regex_duration = "/Duration: ([0-9]1,2):([0-9]1,2):([0-9]1,2).([0-9]1,2)/"; if (preg_match($regex_duration, $output, $regs)) $hours = $regs [1] ? $regs [1] : null; $mins = $regs [2] ? $regs [2] : null; $secs = $regs [3] ? $regs [3] : null; $ms = $regs [4] ? $regs [4] : null; return array('codec' => $codec, 'width' => $width, 'height' => $height, 'hours' => $hours, 'mins' => $mins, 'secs' => $secs, 'ms' => $ms ); function _human_filesize($bytes, $decimals = 2) $sz = 'BKMGTP'; $factor = floor((strlen($bytes) - 1) / 3); return sprintf("%.$decimalsf", $bytes / pow(1024, $factor)) . @$sz[$factor];

Si usa Wordpress, puede usar la función de compilación de wordpress con la identificación de video provista wp_get_attachment_metadata ($ videoID):

wp_get_attachment_metadata($videoID);

me ayudo mucho. por eso lo publico, aunque es solo para usuarios de wordpress.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *