Foros del Web » Programando para Internet » PHP »

subir video y convertirlo en flv

Estas en el tema de subir video y convertirlo en flv en el foro de PHP en Foros del Web. Hola a todos. estoy interesada en crear una aplicación que suba videos de cualquier extensión al servidor y éste automáticamente los convierta en formato flv. ...
  #1 (permalink)  
Antiguo 17/03/2010, 04:56
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
subir video y convertirlo en flv

Hola a todos. estoy interesada en crear una aplicación que suba videos de cualquier extensión al servidor y éste automáticamente los convierta en formato flv.

Para ello he instalado la extensión ffmpeg en php. el caso es que tengo el form, el proceso, pero la aplicación no hace nada. y desconozco el motivo. Aquí os dejo el código para ver si me podéis echar una mano:

archivo form.php
Código PHP:
<?php
echo '<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="FILE" name="archivo">
<input type="submit" value="Subir">  
</form>'
;
?>
archivo upload.php
Código PHP:
<?php
// Creo una matriz de los archivos permitidos
$matriz[0]="3g2";
$matriz[1]="3gp";
$matriz[2]="aac";
$matriz[3]="aiff";
$matriz[4]="amr";
$matriz[5]="asf";
$matriz[6]="avi";
$matriz[7]="flv";
$matriz[8]="mov";
$matriz[9]="mp4";
$matriz[10]="mpeg";
$matriz[11]="mpeg1video";
$matriz[12]="mpeg2video";
$matriz[13]="mpegvideo";
$matriz[14]="rm";
$matriz[15]="vob";
$matriz[16]="wmv";

if(!
$_GET['output'] or !$_GET['soutvideo']){
$ruta_server="movies/"//Ruta donde quieras que se guarde el video temporal
$nombre_temporal=$_FILES['archivo']['tmp_name'];
$nombre_archivo $_FILES['archivo']['name'];
$tipo_archivo $_FILES['archivo']['type'];
$tamano_archivo $_FILES['archivo']['size'];
$ubicacion $ruta_server.$nombre_archivo;

if(
is_uploaded_file($nombre_temporal)){
$tamanoKB $HTTP_POST_FILES['archivo']['size']/1024;
$ext strtolower(array_pop(explode(".",$nombre_archivo)));
$clave array_search($ext$matriz);

if (!
$clave and ($tamanoKB 50000)){

echo 
"Lo sentimos pero no se pudo subir el archivo porque no tiene el formato correcto o el peso del archivo no es el indicado";

echo 
" Los Formatos permitidos son: 3g2, 3gp, aac, aiff, amr, asf, avi, flv ,mov ,mp4, mpeg, mpeg1video, mpeg2video, mpegvideo, rm, vob, wmv";

echo 
"El peso Maximo de los archivos es 50 Mb";
}
else{
//Si subió correctamente el archivo
if(move_uploaded_file($_FILES['archivo']["tmp_name"],$ubicacion))
{
// Guardas el nombre del archivo en la base de datos con la variable $nombre_archivo


$aleatorio=rand(0,10000);
$nom=$fecha."_".$aleatorio;
$nameImage="img_".$nom;
$videoname=$nombre_archivo.$nom;
$ffmpegPath "/usr/bin/ffmpeg";

// Creo la clase (eh usado esto ffmpeg-php)
$ffmpegObj = new ffmpeg_movie($ubicacion);
// Guardando los parametros del video con las variables
$srcFPS $ffmpegObj->getFrameRate();
$srcAB intval($ffmpegObj->getAudioBitRate()/1000);
$srcAR $ffmpegObj->getAudioSampleRate();

//convierto el video al formato flv (formato usado por youtube)
exec($ffmpegPath " -i " .$ubicacion." -ar 22050 -ab " $srcAB " -f flv -acodec mp3 -s 400x320 video/".$videoname.".flv");

// convierto el primer frame del video en imagen para tener un thumbnail de video
exec($ffmpegPath." -i ".$ubicacion." -vframes 1 -s 100x100  video_imagen/".$nameImage."%d.jpg 2>&1",$soutvideo);

//Borro el archivo temporal del video
if(file_exists($ubicacion)){
$archivo"video_temp/".$nombre_archivo;
unlink($archivo);
$_SESSION['Valor']=1;

}
}
}

?>
bien. pues subo el video pero no hace nada de nada. que es lo que sucede?
__________________
desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen
  #2 (permalink)  
Antiguo 17/03/2010, 10:20
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: subir video y convertirlo en flv

Es posible que el tiempo de ejecucion del script supere el permitido por PHP y por eso no te realiza la conversion. Por otra parte, es mejor ejecutar la conversion en segundo plano, de esta forma, en cuanto se recibe el archivo el usuario podra ver un mensaje que le avise "Hey, ya se subio, ahora lo estamos convirtiendo" y si cambia de pagina o hace alguna otra cosa, no se vera afectado el proceso.

Un ejemplo de como hacerlo en segundo plano: http://www.forosdelweb.com/f18/aport...ground-732914/
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: flv, subir, video
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 13:43.