¿Cómo convierto mediante programación mp3 a un archivo aac/m4a reproducible en iTunes?

StackOverflow https://stackoverflow.com/questions/70096

  •  09-06-2019
  •  | 
  •  

Pregunta

He estado buscando una manera de convertir un mp3 a aac mediante programación o mediante la línea de comando sin suerte.Idealmente, tendría un fragmento de código al que podría llamar desde mi aplicación Rails y que convierte un mp3 a aac.Instalé ffmpeg y libfaac y pude crear un archivo aac con el siguiente comando:

ffmpeg -i test.mp3 -acodec libfaac -ab 163840 dest.aac

Cuando cambio el nombre del archivo de salida a dest.m4a, no se reproduce en iTunes.

¡Gracias!

¿Fue útil?

Solución

FFmpeg proporciona funciones de codificación AAC si las ha compilado.Si está utilizando Windows, puede obtener archivos binarios completos desde aquí

ffmpeg -i source.mp3 -acodec libfaac -ab 128k dest.aac

No estoy seguro de cómo llamarías a esto desde Ruby.

Además, asegúrese de configurar la tasa de bits de forma adecuada.

Otros consejos

Sólo hay tres codificadores AAC gratuitos que yo sepa que están disponibles a través de una interfaz de línea de comandos:

  1. FAAC (LPGL), que, sinceramente, es bastante malo (la calidad será significativamente peor que LAME con la misma tasa de bits).Sin embargo, está bien si está dispuesto a optar por velocidades de bits más altas (>>128 kbps) y necesita AAC por compatibilidad, no por motivos de calidad.La forma más común de utilizar FAAC es mediante ffmpeg, como libfaac.

  2. Nero AAC, cuyo codificador de línea de comandos está disponible de forma gratuita en Windows y Linux, pero sólo para uso no comercial (y, en consecuencia, es de código cerrado).

  3. El codificador AAC de ffmpeg, que aún está en desarrollo y aunque creo que técnicamente funciona, no es nada estable ni bueno ni siquiera rápido, ya que aún está en las etapas iniciales.Hasta donde yo sé, tampoco está disponible en el maletero.

(Editar:Parece que iTunes también podría tener uno, sospecho que sus términos de uso son similares a los de Nero.AFAIK su calidad es comparable.)

Me doy cuenta de que llego tarde a esta fiesta, pero estoy cuestionando la premisa de esta pregunta.¿Por qué quieres convertir un MP3 a un formato "reproducible con iTunes"?iTunes ya maneja archivos MP3 de forma nativa.

Parece que estás haciendo una conversión innecesaria y, dado que estás convirtiendo de un formato con pérdida a otro, estás perdiendo algo de calidad en el proceso.

Después de instalar la aplicación de conversión en la máquina Linux/Windows en la que está ejecutando su aplicación Rails, use el comando "system()" en Ruby para invocar la aplicación de conversión en el sistema.sistema("comando_aquí");

en ffmpeg 0.5 o posterior use ffmpeg -i fuente.mp3 Target.m4a

para obtener mejores resultados al transferir metadatos y anular la tasa de bits predeterminada, se aplica ffmpeg

ffmpeg -i "entrada.mp3" -ab 256k -map_meta_data entrada.mp3: salida.m4a salida.m4a

mejor no convertir ya que el iPod reproduce bien mp3 (sé que existe esa respuesta, pero mi baja posición no me permite votar)

He tenido buena suerte usando mplayer (que creo que usa ffmpeg...) y es poco convincente.Hasta el punto de que lo he incluido en un guión:

#!/bin/sh

TARGET=$1

BASE=`basename "${TARGET}"`
echo TARGET: "${TARGET}"
echo BASE:   "${BASE}" .m4a

# Warning! Race condition vulnerability here! Should use a mktemp
# variant or something...
mkfifo encode
mplayer -quiet -ao pcm -aofile encode "${TARGET}" &
lame --silent encode "${BASE}".mp3
rm encode

Perdón por los problemas de seguridad, un día hice esto en el tren...

Mi jugador y cojo vienen de soplón

En realidad, la sintaxis es ffmpeg -i input.mp3 -c:a aac -strict -2 -b:a 256k output.m4a;más correcto si se está emulando la tasa de bits "correcta".cf.:enlace para un esquema de compilación.(El paquete rpmfusion también funciona bien:

configuración:--prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share /man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc -switches -m64 -mtune=generic' --enable-bzlib --disable-crystalhd --enable-frei0r --enable-gnutls --enable-libass --enable-libcdio --enable-libcelt --enable-libdc1394 - -disable-indev=jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopencv --enable-libopenjpeg --enable-libopus --enable-libpulse --enable- libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --enable- avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 - -enable-runtime-cpudetect

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top