Foros del Web » Programando para Internet » PHP »

Crear una imagen a partir de un video

Estas en el tema de Crear una imagen a partir de un video en el foro de PHP en Foros del Web. Tengo un codigo en el que subo un video a una carpeta que se crean en el momento llamada = que el nombre del video. ...
  #1 (permalink)  
Antiguo 24/11/2008, 05:27
Avatar de Shagraarath  
Fecha de Ingreso: agosto-2008
Mensajes: 151
Antigüedad: 15 años, 8 meses
Puntos: 1
Crear una imagen a partir de un video

Tengo un codigo en el que subo un video a una carpeta que se crean en el momento llamada = que el nombre del video.

Querria que se guardara una imagen de un frame del video pero no se como hacerlo :S

Lei en este foro que se hace con el ffmpeg y encontre este codigo:

Código HTML:
exec("ffmpeg -i ".escapeshellarg($video)." -ss ".escapeshellarg($time)." -t 0.001 -y ".escapeshellarg($image))
No se como hacerlo.

Os dejo mi codigo de subir videos por si quereis utilizar alguna variable en vuestra explicacion.

Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Subiendo una nueva foto</title>
    <link rel="STYLESHEET" type="text/css" href="estilos_admin.css">                         <!-- Llama al  archivo .CSS -->
</head>
<body>
<h1>Subiendo un archivo</h1>
<br> 
<div align="center">
<?php
$tipo_archivo 
$HTTP_POST_FILES['video']['type'];                                             // Guarda la extension del archivo
/*echo "$tipo_archivo";*/
if($_FILES['video']['name']!=NULL)                                                            // Abre el if si se ha seleccionado un archivo
 

   
$nombre= ($_POST["cadenatexto"]);                                                        // Guarda el  nombre del archivo
   
$descripcion= ($_POST["descripcion"]);                                                    // Guarda la descripcion del archivo
   
$uploadfile_temporal=$_FILES['video']['tmp_name'];                                        // Guarda informacion en $uploadfile_temporal que utilizara para subir el archivo
   
$bool preg_match('/\.[.^mov][.^mov]/',$HTTP_POST_FILES['video']['name']);                // El boleano cambia segun el archivo sea .mov o no
   
$tamano_archivo $HTTP_POST_FILES['userfile']['size'];                                    // Guarda el tamaño del archivo
   
$nombre_carpeta "videos/".$nombre."/";                                                    // Crea la ruta de la creacion del video
   
$uploadfile_nombre=$nombre_carpeta.$_FILES['video']['name'];                                // Guarda iformacion en $uploadfile_nombre que utilizara para subir el archivo 
   
$ruta_video=$nombre_carpeta.$_FILES['video']['name'];                                    // Guarda informacion en $ruta_video que utilizara para crear la ruta del video
  

if(!is_dir($nombre_carpeta)){                                                                // Se abre el if si no existe una carpeta con el mismo valor que $nombre_carpeta
@mkdir($nombre_carpeta0700);                                                                // Crea la carpeta con el valor de $nombre_carpeta
   
                
if (!$bool || ($tamano_archivo 10000000)) {                                 // Comprueba la extension y tamaño del archivo
                    
echo "La extensión o el tamaño de los archivos no es correcta. <p><ol><li>Se permiten archivos .flv o .mov<br><li>se permiten archivos de 100Mb máximo.";
                }else{
                     
move_uploaded_file($uploadfile_temporal,$uploadfile_nombre);            // Sube el archivo a la ruta creada
                     
$ingresar="insert into videos (ID,Nombre, Ruta, IMG, descripcion) values ('','$nombre', '$uploadfile_nombre','$nombre_carpeta','$descripcion')";                                                         // Guarda la insctruccion para subir los datos a la BB.DD en $ingresar
                     
$link mysql_connect("localhost""root");                            // Guarda los datos de conexion a la BB.DD en $link
                      
mysql_select_db("deporte",$link);                                        // Conecta a la BB.DD
                     
if(mysql_query($ingresar))                                                // Se abre el if si se ingresan los datos en la BB.DD
                     
{
                       echo 
"<p>El video ha sido ingresado correctamente";
                     }
                     else                                                                    
// Salta un mensaje de error si no se puede ingresar
                     
{  
                       echo 
"<p>Error al ingresar el video";
                     }
                   }
}else{                                                                                        
// Salta un mensaje de error si el titulo del video ya existe
echo "<p>El titulo del video ya existe.";
}  
}
 
?>
                 <p>
                <p>
                <a href="index.php">Volver</a>
</div>
</body>
</html>
Saludos.
  #2 (permalink)  
Antiguo 24/11/2008, 07:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: [Problema] Crear una imagen a partir de un video.>URGENTE<|Tengo 3 dias pa

bien, y el problema es ???

mensaje de error??

de verdad estas seguro que tienes ffmpeg ???

digo, eso hay que pensarlo primero....


--

por cierto porque usas $HTTP_POST_FILES y $_FILES al mismo tiempo ???



lo recomendable es usar siempre $_FILES ... suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 24/11/2008, 11:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: [Problema] Crear una imagen a partir de un video.>URGENTE<|Tengo 3 dias pa

Titulo de tema editado, por favor usa titulos más descriptivos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:17.