scorpionhack:
Siguiendo con lo que te ha expuesto el amigo GatorV y sin saber exactamente para que lo piensas utilizar, te explico lo que hice y lo utilizo para reducir el tamaño de los mp3, wav y wma de, por ejemplo 3MB a 400-500Kb para despues utilizarlos en mi celular ya que un audio de 3MB es para escucharse en equipos stereofonicos, etc en cambio en celulares se escucha igual si es de 3MB que si es de 400-500KB con la ventaja que utiliza poco espacio.
Proceso que segui ->
1.- Baje el ffmpeg.rev11870.7z de 2.4MB archivo (Winrar-Comprimido)
lo desempaque y puse el DLL que trae y los dos EXE el ffmpeg y el ffplay
en mi sitio web diseñado para ello
2.- Baje el lame-3.97.zip 513Kb(Comprimido) lo desempaque y puse el
EXE lame junto con los de arriba.
3.- Buscando en phpclases encontre algo parecido que eventualmente
modifique para mis necesidades especificas resultando lo siguiente.
a.- Un index.php con esta FORM asi ->
Cita: echo "<form action=\"convertidor_audio.php\" method=\"post\">
<b>Archivo A Procesar:<br><input name=\"audio\" type=\"text\" value=\"franco.wma\"><br>
<b>Obtener:<br><input name=\"clase\" type=\"text\" value=\"mp3\"><br>
<b>Escoga Estereo O Mono::<br><input name=\"estereomono\" type=\"text\" value=\"estereo\"><br>
<b>Escoga Los kbps::<br><input name=\"loskbps\" type=\"text\" value=\"16\"><br>
<input name=\"submit\" type=\"submit\" value=\"Procesar Archivo!\"><br>
<input type=\"reset\" value=\"Reset\">
</form>";
b.- Las variables del FORM son recibidas y procesadas asi ->
Cita: <?php
$fuente = $_POST['audio']; //Asegurarse que la fuente existe
$fuente = rtrim($fuente);
$fuente = strtolower($fuente);
$sonido = $_POST['estereomono']; //Asegurarse que solo sea Mono o Estereo
$sonido = rtrim($sonido);
$sonido = strtolower($sonido);
$tipofinal = $_POST['clase'];
$tipofinal = rtrim($tipofinal);
$tipofinal = strtolower($tipofinal);
$compresion = $_POST['loskbps']; //Asegurarse que sea 8 o 16 o 32 solamente
$compresion = rtrim($compresion);
$kbpersecond = array('8','16','24','32','40','48','56'); // Permite : '48','56','64','80','96','112','128' hasta 256
$monoestereo = array('j','s','m','f'); // f=Modo Rapido, m=Modo Mono, s=Modo Stereo y j=Modo Stereo Juntos
$codificador = array(
'wav'=>array('lame','%1$s --silent --nores -h -m %3$s -b %4$d %2$s -'),
'mp3'=>array('lame','%1$s --silent --nores -h -m %3$s -b %4$d --mp3input %2$s -'),
'x'=>array('lame','%1$s --silent --nores -h -m %3$s -b %4$d - -'), //Usa Lame Si No encuentra otro
);
$decodificador = array(
'wav'=>array('lame',''),
'mp3'=>array('lame',''),
'3gp'=>array('ffmpeg','%1$s -v 0 -i %2$s -f wav - | '),
'mov'=>array('ffmpeg','%1$s -v 0 -i %2$s -f wav - | '),
'wma'=>array('ffmpeg','%1$s -v 0 -i %2$s -f wav - | '),
'm4a'=>array('ffmpeg','%1$s -v 0 -i %2$s -f wav - | '),
'mov'=>array('ffmpeg','%1$s -v 0 -i %2$s -f wav - | '),
'3gp'=>array('ffmpeg','%1$s -v 0 -i %2$s -f wav - | '),
'x'=>array('ffmpeg','%1$s -v 0 -i %2$s -f wav - | '), //Usa ffmpeg Si no encuentra otro
);
echo "<body bgcolor=\"#33FF00\">";
//$fuente = "inicio/$fuente";
$fuente = "wap6entrada/$fuente";
$type = strtolower(pathinfo($fuente, PATHINFO_EXTENSION)); //Aqui sale el tipo de archivo mp3 o wma en minuscula
$name = basename($fuente, '.' . $type); //Aqui sale Akira y JohnKano
if(file_exists($fuente)) { //Checar si el archivo fuente existe!.
$tamano = filesize($fuente);
$fuente = realpath($fuente);
} else {
echo "El Archivo No Existe!.<br>";
exit();
}
if(strpos($fuente, ' ')) {
$fuente = '"' . $fuente . '"';
}
if(array_key_exists($type, $decodificador)) { //Checar si el tipo de archivo existe en los decodificadores
$decodificar = $decodificador[$type];
} else {
if(array_key_exists('x', $decodificador)) { //Checar si existe el default de los decodificadores
$decodificar = $decodificador['x'];
} else {
echo "No Hay Decodificador Disponible para $type!.<br>";
exit();
}
}
if(array_key_exists($type, $codificador)) { //Checar si el tipo de archivo existe en los codificadores
$codificar = $codificador[$type];
} else {
if(array_key_exists('x', $codificador)) { //Checar si existe el default de los codificadores
$codificar = $codificador['x'];
} else {
echo "No Hay Codificador Disponible para $type!.<br>";
}
}
if($tipofinal != "mp3" && $tipofinal != "wav") {
echo "Usted Debe Utilizar,<br>";
echo "mp3 o wav,<br>";
echo "Solamente!-<br>";
echo "Vuelva A Intentar!.<br>";
exit();
}
if($sonido != "estereo" && $sonido != "mono" && $sonido != "estereomono" && $sonido != "rapido") {
echo "Usted Debe Utilizar,<br>";
echo "estereo, mono, estereomono,<br>";
echo "o rapido Solamente!-<br>";
echo "Vuelva A Intentar!.<br>";
exit();
}
if($compresion != "8" && $compresion != "16" && $compresion != "24" && $compresion != "32" && $compresion != "40" && $compresion != "48" && $compresion != "56") {
echo "Usted Debe Utilizar,<br>";
echo "8 o 16 o 24 o 32 o<br>";
echo "40 o 48 o 56 kbps Solamente!!.<br>";
echo "Vuelva A Intentar!.<br>";
exit();
}
if($compresion == "8") {
$kbpersecond = intval($kbpersecond[0]);
}
if($compresion == "16") {
$kbpersecond = intval($kbpersecond[1]);
}
if($compresion == "24") {
$kbpersecond = intval($kbpersecond[2]);
}
if($compresion == "32") {
$kbpersecond = intval($kbpersecond[3]);
}
if($compresion == "40") {
$kbpersecond = intval($kbpersecond[4]);
}
if($compresion == "48") {
$kbpersecond = intval($kbpersecond[5]);
}
if($compresion == "56") {
$kbpersecond = intval($kbpersecond[6]);
}
if($sonido == "estereo") {
$calidad = "e";
$monoestereo = strtolower($monoestereo[1]);
}
if($sonido == "mono") {
$calidad = "m";
$monoestereo = strtolower($monoestereo[2]);
}
if($sonido == "estereomono") {
$calidad = "em";
$monoestereo = strtolower($monoestereo[0]);
}
if($sonido == "rapido") {
$calidad = "r";
$monoestereo = strtolower($monoestereo[3]);
}
if($tipofinal == "mp3") {
$salida = "kbps.mp3";
}
if($tipofinal == "wav") {
$salida = "kbps.wav";
}
$objetivo = $name . '+' . $calidad . '+' . $kbpersecond . $salida;
$command = sprintf($decodificar[1], $decodificar[0], $fuente) . sprintf($codificar[1], $codificar[0], $fuente, $monoestereo, $kbpersecond);
//$rutafinal = "audiosx/$objetivo";
$rutafinal = "salidawap6/$objetivo";
system($command . ' > ' . $rutafinal);
echo "<body bgcolor=\"#33FF00\">";
$nuevotamano = filesize($rutafinal);
echo "Size Inicial:<br> $tamano bytes<br>";
echo "Size Final:<br> $nuevotamano bytes<br>";
echo "Nombre:<br> $objetivo<br>";
echo "Trabajo terminado<br> ENJOY!!!!!!!.<br>";
?>
Los archivo originales deben ser depositados en un directorio creado con
nombre wap6entrada y el audio ya reducido es depositado en el directorio que debes crear que se debera llamar salidawap6.
De todo el codigo, este es el ejecuta las instrucciones finales ->
Cita: system($command . ' > ' . $rutafinal);
Saludos
Y espero te sirva
Franco