2012-01-29 18 views
6

tengo esta página (muy simple para mostrar lo que necesito) para cargar archivos flv - leo algunas publicaciones sobre ffmpeg-php pero cómo instalarlas en el servidor si es la solución y cómo usarlo?necesito crear una miniatura para cargar videos (código muy simple)

<?php 
if(isset($_REQUEST['upload'])){ 
$tmp_name = $_FILES['video']['tmp_name']; 
$name = $_FILES['video']['name']; 
$path = "videos/"; 
move_uploaded_file($tmp_name,$path.$name); 
} 
else{ 
?> 
<form action="" method="post" enctype="multipart/form-data"> 
<input name="video" type="file" /> <input name="upload" type="submit" value="upload" /> 
</form> 
<?php 
} 
?> 

y la necesidad de crear una miniatura de vídeo subido en otra carpeta con el mismo nombre ayuda? gracias de antemano

Respuesta

8

Instalar ffmpeg debe ser sencillo. En cualquier distro basada en Ubuntu/Debian, utilizar apt-get:

apt-get install ffmpeg 

Después de eso, se puede utilizar para crear una imagen en miniatura.

primer lugar usted necesita para obtener una ubicación de tiempo aleatorio de su archivo:

$video = $path . escapeshellcmd($_FILES['video']['name']); 
$cmd = "ffmpeg -i $video 2>&1"; 
$second = 1; 
if (preg_match('/Duration: ((\d+):(\d+):(\d+))/s', `$cmd`, $time)) { 
    $total = ($time[2] * 3600) + ($time[3] * 60) + $time[4]; 
    $second = rand(1, ($total - 1)); 
} 

Ahora que la variable de $second se establece. La imagen real:

$image = 'thumbnails/random_name.jpg'; 
$cmd = "ffmpeg -i $video -deinterlace -an -ss $second -t 00:00:01 -r 1 -y -vcodec mjpeg -f mjpeg $image 2>&1"; 
$do = `$cmd`; 

Se guardará automáticamente la imagen en miniatura para thumbnails/random_name.jpg (es posible que desee cambiar ese nombre basado en el video subido)

Si desea cambiar el tamaño de la imagen, utilice el parámetro -s (-s 300x300)

Consulte la ffmpeg documentation para obtener una lista completa de los parámetros que puede utilizar.

+0

gracias por responder, pero todavía no entiendo - cómo cargar ffmpeg para el servidor e instalarlo utilizando el código i no sé nada sobre Linux y soy nuevo en hosting tengo cpanel 11.30.5 (compilación 6) –

+0

ok, pregunté por el soporte de hosting y me respondieron que ffmpeg no tiene soporte para ninguna solución. –

+0

Si su empresa de hosting no tiene ffmpeg instalado, desafortunadamente esta solución no funcionará para usted. ¿Puedes cambiar a un hosting que soporte ffmpeg? Haga una búsqueda en Google sobre 'hosting compartido ffmpeg'. Debería haber cientos de ellos alrededor. – Tony

2

O bien, puede hacerlo en el navegador con etiqueta video de HTML5 y lona, ​​consulte: https://gist.github.com/adamjimenez/5917897

+1

debería ser la respuesta. Ffmpeg es una mierda para esta pequeña tarea. Desperdiciado planty de tiempo en él. –

+0

eso es lo que uso. una vez finalizada la carga, el cliente genera la miniatura y proporciona los datos de base64 al servidor. gran awser –

Cuestiones relacionadas