ruby - m4r - itunes mp3 download
¿Cómo convierto programáticamente mp3 a un archivo aac/m4a reproducible en itunes? (7)
Después de instalar la aplicación de conversión en la máquina de 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í");
He estado buscando una forma de convertir un mp3 aaac programáticamente o mediante la línea de comandos sin suerte. Idealmente, tendría un fragmento de código que podría llamar desde mi aplicación Rails que convierte un mp3 a un 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!
He tenido suerte usando mplayer (que creo que usa ffmpeg ...) y cojo. Hasta el punto de que lo he envuelto 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, me golpeé esto en el tren un día ...
Mi mplayer y cojo vienen de fink
Solo hay tres codificadores AAC libres que conozco que están disponibles a través de una interfaz de línea de comandos:
FAAC (LPGL), que honestamente es bastante malo (la calidad va a ser significativamente peor que LAME a la misma velocidad de bits). Está bien, sin embargo, si está dispuesto a obtener tasas de bits más altas (>> 128kbps) y necesita AAC para compatibilidad, no razones de calidad. La forma más común de usar FAAC es a través de ffmpeg, como libfaac.
Nero AAC, el codificador de línea de comandos para el que está disponible de forma gratuita en Windows y Linux, pero solo para uso no comercial (y es, por tanto, de código cerrado).
El codificador AAC de ffmpeg, que aún está en desarrollo y, si bien creo que funciona técnicamente, no es en absoluto estable o bueno o incluso rápido, ya que todavía está en las etapas iniciales. Tampoco está disponible en el maletero, hasta donde yo sé.
(Editar: Parece que iTunes podría tener uno también, sospecho que sus términos de uso son similares a los de Nero. AFAIK su calidad es comparable).
FFmpeg proporciona servicios de codificación AAC si los compiló. Si está utilizando Windows, puede obtener binarios completos desde aquí
ffmpeg -i source.mp3 -acodec libfaac -ab 128k dest.aac
No estoy seguro de cómo llamarías esto de Ruby.
Además, asegúrese de establecer la tasa de bits de manera adecuada.
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 "itunes jugable"? iTunes ya maneja MP3 de forma nativa.
Parece que está haciendo una conversión innecesaria, y como está convirtiendo de un formato con pérdida a otro, está perdiendo algo de calidad en el proceso.
en ffmpeg 0.5 o posterior usa ffmpeg -i source.mp3 target.m4a
para obtener mejores resultados para transferir metadatos y anular la tasa de bits predeterminada se aplica ffmpeg
ffmpeg -i "input.mp3" -ab 256k -map_meta_data input.mp3: output.m4a output.m4a
Lo mejor es no convertir, ya que iPod reproduce mp3 bien (sé que hay tal respuesta, pero mi baja reputación no permite votar)
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 velocidad 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-ru ntime-cpudetect