Quiero saber cómo obtener la duración, dimensión y tamaño del archivo de video cargado en PHP. El archivo puede estar en cualquier formato de video.¿Cómo obtener la duración, dimensión y tamaño del video en PHP?
Respuesta
getID3 admite formatos de video. Ver: http://getid3.sourceforge.net/
Editar: Así, en formato de código, que 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<br />");
Nota: Debe incluir las clases getid3 antes de que esto va a funcionar! 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. Ve: http://ffmpeg-php.sourceforge.net/
Si ha FFMPEG instalada en el servidor (http://www.mysql-apache-php.com/ffmpeg-install.htm), es posible obtener los atributos de su vídeo usando el comando "-vstats" y analizar el resultado con un poco de expresiones regulares - como se muestra en la ejemplo a continuación. Entonces, necesitas el funtion PHP filesize() 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'] . '<br/>');
print_r('Dimension: ' . $video_attributes['width'] . ' x ' . $video_attributes['height'] . ' <br/>');
print_r('Duration: ' . $video_attributes['hours'] . ':' . $video_attributes['mins'] . ':'
. $video_attributes['secs'] . '.' . $video_attributes['ms'] . '<br/>');
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: ([^\r\n]*), ([^,]*), ([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("%.{$decimals}f", $bytes/pow(1024, $factor)) . @$sz[$factor];
}
¡Muchas gracias por esto! Descubrí que la expresión regular proporcionada se quedó corta porque mis videos de prueba tenían una coma adicional en la sección del códec. Dicho esto, aquí hay una solución para cualquiera con el mismo problema: '$ regex_sizes ="/Video: ([^ \ r \ n] *), ([^,] *), ([0-9] {1,4 }) x ([0-9] {1,4})/";' también, mi ruta ffmpeg era: '/ usr/local/bin/ffmpeg' (escribe' which ffmpeg' en una consola para encontrar la ruta de instalación) Aquí hay una muestra de Regexr: http://regexr.com/3fs8d – 1owk3y
¡Gracias! Actualicé mi respuesta en consecuencia. – F3L1X79
Si utiliza Wordpress que sólo puede utilizar el wordpress construyen en función con el identificador de vídeo proporcionan wp_get_attachment_metadata($videoID):
wp_get_attachment_metadata($videoID);
me ha ayudado mucho. es por eso que he publicado, aunque la pregunta fue hecha en 2011.
https://github.com/JamesHeinrich/getID3 descarga getid3 cremallera y que sólo se getid3 llamado copiar y pegar la carpeta en la carpeta de proyecto y usarlo como a continuación muestran ...
<?php
require_once('/fire/scripts/lib/getid3/getid3/getid3.php');
$getID3 = new getID3();
$filename="/fire/My Documents/video/ferrari1.mpg";
$fileinfo = $getID3->analyze($filename);
$width=$fileinfo['video']['resolution_x'];
$height=$fileinfo['video']['resolution_y'];
echo $fileinfo['video']['resolution_x']. 'x'. $fileinfo['video']['resolution_y'];
echo '<pre>';print_r($fileinfo);echo '</pre>';
?>
- 1. ¿Cómo se subió la duración del video?
- 2. cómo obtener la duración total del video en la vista de video en android
- 3. hora actual/duración del video html5?
- 4. Cómo obtener la duración del video usando FFMPEG en C# asp.net
- 5. ¿Cómo puedo detectar la duración del archivo de video en minutos con PHP?
- 6. iPhone: ¿Cómo obtener la duración del video seleccionado de la biblioteca?
- 7. Cómo obtener la duración del video de mp4, wmv, flv, mov videos
- 8. AVURLAsset obtener tamaño de video
- 9. ¿Cómo establecer la duración de un video en FFMPEG?
- 10. ¿Cómo obtener la dimensión de un JPopupMenu?
- 11. iOS: ¿Cómo obtener la duración del gesto de presión prolongada?
- 12. Obteniendo la longitud del video
- 13. Cómo controlar la dimensión/tamaño de un gráfico con ggplot2
- 14. Obtener la duración de mp3 en Android
- 15. Obtener longitud o duración del archivo .wav
- 16. HTML5 - cómo obtener la dimensión de la imagen
- 17. Control de posición de inicio y duración del juego en video HTML5
- 18. ¿Cómo obtener el tamaño del recurso de imagen en bytes con PHP y GD?
- 19. ¿Cómo se calcula la duración del cuadro para repetir decimales?
- 20. Java obtener color y tamaño del borde
- 21. ¿Cómo obtener el marco de video del AVPlayer?
- 22. FFMPEG No se puede mostrar la duración de un video
- 23. PHP include(): Tamaño y rendimiento del archivo
- 24. ¿Cómo obtener el tamaño de archivo de la grabación de video en vivo en Android?
- 25. ¿Cómo puedo obtener el tiempo de duración del audio html5?
- 26. Obtener una imagen en miniatura del video desde la URL del video
- 27. ¿Cómo obtener la dimensión de la diapositiva del power point usando vba?
- 28. Obtener el tamaño de la solicitud POST en PHP
- 29. ¿Cuál es la duración óptima para la contraseña del usuario?
- 30. ¿Cómo obtener la ruta del PHP BIN desde PHP?
Hola, gracias, pero esto funciona bien para el archivo de audio pero no funciona correctamente en los archivos de video como mp4, wmv, etc. ... Por favor, háganme saber cualquier otra solución aparte de esto. – Chandan
Use una biblioteca diferente, entonces, o una extensión PHP como ffmpeg-php (http://ffmpeg-php.sourceforge.net/) – aendrew
¿cuál es el problema con getID3 y ffmpeg? por qué no están haciendo la interfaz de usuario adecuada para que la lectura sea muy fácil de usar ... se desvaneció al mirar la página de inicio de getID3 solamente ... –