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?