Cómo convertir alto bitrate mp3 a una tasa más baja utilizando ffmpeg en android
Queremos convertir el archivo mp3 320kbps a 128kbps mp3 así que actualmente estamos utilizando el comando ffmpeg mas abajo, pero no funciona.
ffmpeg -i input.mp3 -codec:a libmp3lame -qscale:a 5 output.mp3
Resultado: -el bitrate de salida igual que la entrada mp3.
- Superposición de vídeo de Android
- Compilación ffmpeg neón en android - errores de ensamblador
- Ffmpeg con un conjunto de archivos de imagen no formateado como% d.jpg
- Construyendo FFmpeg para Android
- Reemplazar el codificador de software estándar Android H264 con un basado en ffmpeg
Y seguimos la guía de codificación FFmpeg para que aquí está el enlace: – https://trac.ffmpeg.org/wiki/Encode/MP3
Así que por favor sugiera cualquier solución.
- Decodificación de audio a través de Android utilizando FFMpeg
- Cómo construir ffmpeg bibliotecas compartidas sin sufijo de versión
- Hardware acelerado FFmpeg en android?
- Cómo pasar correctamente un archivo FileDescriptor a FFmpeg usando JNI en Android
- Reproducción de un vídeo con JavaCV y FFmpeg
- Ejecutar binario ejecutable FFmpeg en Android
- Buscando FFmpeg Wrappers para Android
- ¿Cómo compilar la última FFmpeg Library para Android?
He probado su comando mostrado (probado en Windows / línea de comandos):
ffmpeg -i input.mp3 -codec:a libmp3lame -qscale:a 5 output.mp3
Resultado : Funciona para mí. Sin embargo, el -qscale:a 5
hace FFmpeg decidir sobre un promedio de bitrate para usted. Con un (320k) archivo MP3 lo conseguí dándole un close convert de 134kbps . Esto se espera desde:
lame option Average kbit/s Bitrate range kbit/s ffmpeg option -V 5 130 120-150 -q:a 5
Solución :
En lugar de hacer que los cuadros mp3 internos mantengan velocidades de bits diferentes (que varían para adaptar el audio percibido "actual", por ejemplo: piensan en partes "silenciosas" usando una menor velocidad de bits / bytes en comparación con las partes de audio "ocupadas"), Bitrate de 128kbps como usted necesita.
Yo sólo lo establecería a 128kbps constante de forma manual y explícita con:
ffmpeg -i input.mp3 -codec:a libmp3lame -b:a 128k output.mp3
Tomó un poco de juguetear para conseguir el ffmpeg derecho y encontrar opciones, pero esto debe hacerlo.
#!/bin/bash MUSIC="FULL PATH TO YOUR MUSIC FOLDER" BITRATE=160k find "${MUSIC}" -name "*.mp3" -execdir echo "{}" \; -exec mv "{}" "{}.mp3" \; -exec ffmpeg -y -loglevel "error" -i "{}.mp3" -acodec libmp3lame -ab $BITRATE "{}" \; -exec rm "{}.mp3" \;
Debido a que ffmpeg no puede emitir al mismo archivo de entrada sin nuking, el script primero cambia el nombre del archivo, construye uno nuevo en el bitrate elegido, luego elimina el archivo antiguo.
Estoy seguro de que muchas personas habrán sugerido mejoras aquí. Ciertamente, le doy la bienvenida a las maneras de hacer el guión más legible.
- Cómo reproducir un archivo de audio cuando se hace clic en un botón determinado de la actividad anterior
- Cómo trabajar con mapa de bits grande. Rotar e insertar en la galería