Buenas tenia ya rato sin escribir algo, bueno espero ser rapido y breve, en esta entrada veremos sobre como crear un convertidor MP3 rapido y facil, en este caso estare utilizando windows, ustedes pueden bajarse el FFMPEG desde su pagina oficial para linux o macosx.
Bueno para ser mas breve posible lo que hare sera mostrar el script e ir explicando por pasos.
Esta es la estructura de nuestro proyectin:
Antes de comenzar a explicar el script, les dire que no es nada "seguro", ya que no le agregue seguridad para que se vea lo mas simple posible, pero si ustedes gustan pueden modificarlo. Y otra cosa es que para poder subir este script a un servidor tenemos que buscar que soporte FFMPEG o simplemente tener un servidor dedicado.
Aunque viene todo comentado, explicare...
1.- Le damos un set_time_limit(0) para que se ejecute el script hasta que termine. Mostramos errores con error_reporting y con ini_set establecemos la directiva de PHP.ini para mostrar errores. Establecemos upload_max_filesize en 200M para subir archivos pesados, muchas de las veces las directivas de PHP no te permiten solo con ini_set por lo que tendras que modificarlo desde el archivo de configuracion php.ini.
2.- Comprobamos si existe el formulario con isset($_POST['submit']), asignamos unas variables para la ruta, con md5(mt_rand()) genero un md5 aleatorio para que el archivo mp3 no se repita el nombre.
3.- movemos el archivo con move_uploaded_file a la ruta que asignamos.
4.- El comando mas importante es el comando de sistema exec, el cual realiza la conversion con el programa FFMPEG. La sintaxis es la siguiente:
5.- Por ultimo verificamos que no haya retornado errores y mostramos el enlace en caso contrario mostramos un mensaje de error.
Con los print_r() podemos debuggear las matrices en caso de error.
Ya que nunca pongo imagenes pondre algunas, ya que dicen que "una imagen vale mas que mil palabras", yo les pondre 3 xD...
Listo. Espero que esta entrada les haya sido de utilidad.
Bueno para ser mas breve posible lo que hare sera mostrar el script e ir explicando por pasos.
Esta es la estructura de nuestro proyectin:
<?php
// sin limite de tiempo
set_time_limit(0);
// para que muestre errores
ini_set("display_errors",1);
error_reporting(E_ALL);
// para que podamos subir archivos pesados 200MB
ini_set('upload_max_filesize', '200M');
// si se envio el formulario
if(isset($_POST["submit"])) {
// el directorio a donde ira el video o archivo que conviertas en mp3
$target_dir = "uploads/";
// aqui se guarda el mp3
$generador_archivo = "mp3/file_".md5(mt_rand()).".mp3";
// el nombre del archivo a subir con su directorio a donde ira
$target_file = $target_dir . basename($_FILES["file"]["name"]);
// movemos el archivo
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
// Aqui esta la magia! convertimos el archivo (Cuidado con la ejecucion de comandos XD)
exec("ffmpeg -i \"$target_file\" $generador_archivo",$output,$return);
// debug
//print_r($output);
// Si se ejecuto correctamente mostramos el enlace al archivo sino un error
if(!$return){
echo "<a href=\"mp3/". basename($generador_archivo). "\">Bajar Archivo</a>.";
}else{
echo "ERROR";
}
// si no se pudo mover el archivo ocurrio un error al subir
} else {
echo "Ocurrio un error al subir archivos";
// debug
//print_r($_FILES);
}
}
?>
<!DOCTYPE html>
<html>
<body>
<form action="" method="post" enctype="multipart/form-data">
Selecciona el archivo a convertir:
<p><input type="file" name="file" id="file"></p>
<p><input type="submit" value="Subir Archivo" name="submit"></p>
</form>
</body>
</html>
Antes de comenzar a explicar el script, les dire que no es nada "seguro", ya que no le agregue seguridad para que se vea lo mas simple posible, pero si ustedes gustan pueden modificarlo. Y otra cosa es que para poder subir este script a un servidor tenemos que buscar que soporte FFMPEG o simplemente tener un servidor dedicado.
Aunque viene todo comentado, explicare...
1.- Le damos un set_time_limit(0) para que se ejecute el script hasta que termine. Mostramos errores con error_reporting y con ini_set establecemos la directiva de PHP.ini para mostrar errores. Establecemos upload_max_filesize en 200M para subir archivos pesados, muchas de las veces las directivas de PHP no te permiten solo con ini_set por lo que tendras que modificarlo desde el archivo de configuracion php.ini.
2.- Comprobamos si existe el formulario con isset($_POST['submit']), asignamos unas variables para la ruta, con md5(mt_rand()) genero un md5 aleatorio para que el archivo mp3 no se repita el nombre.
3.- movemos el archivo con move_uploaded_file a la ruta que asignamos.
4.- El comando mas importante es el comando de sistema exec, el cual realiza la conversion con el programa FFMPEG. La sintaxis es la siguiente:
ffmpeg.exe -i elarchivoaconvertir.mp4 elarchivodesalida.mp3
5.- Por ultimo verificamos que no haya retornado errores y mostramos el enlace en caso contrario mostramos un mensaje de error.
Con los print_r() podemos debuggear las matrices en caso de error.
Ya que nunca pongo imagenes pondre algunas, ya que dicen que "una imagen vale mas que mil palabras", yo les pondre 3 xD...
Listo. Espero que esta entrada les haya sido de utilidad.