No se pudo escribir el encabezado para el archivo de salida # 0 (¿parámetros de códec incorrectos?).
Además, el tamaño del archivo m4a es realmente casi 5,8 veces más grande que el archivo original, que no es absolutamente lo que quería y por qué quería convertirlo a AAC.
Este es el comando FFmpeg más básico para convertir la entrada al audio AAC utilizando la más alta calidad que tiene AAC FFmpeg. libfdk_aaces el codificador Fraunhofer AAC, y está disponible cuando compiló FFmpeg con soporte para él.
ffmpeg -i input.mp3 -c:a libfdk_aac output.m4a
Para cambiar la calidad, tiene dos opciones:
Para tasa de bits variable (VBR), use la -vbropción Por ejemplo, -vbr 4es una buena opción (aproximadamente 128 kBit / s para audio estéreo). Más alto significa mejor. Los valores varían de 1 a 5.
Para tasa de bits fija (CBR), use la -b:aopción, por ejemplo -b:a 128k. 128 kBit / s debería ser lo suficientemente bueno para la mayoría de las situaciones. A menudo puedes elegir algo más bajo también.
Algunas versiones de FFmpeg no tienen libfdk_aac(por razones de licencia). Si ese es el caso, puede usar el codificador AAC incorporado:
ffmpeg -i input.mp3 -c:a aac -b:a 192k output.m4a
Este codificador no es compatible con VBR correctamente, así que si necesita eso o HE-AAC, siga leyendo.
Puede compilar ffmpeg usted mismo y agregar libfdk_aacsoporte. Hay guías en el Wiki de FFmpeg . Compilar es fácil en Linux, moderadamente fácil en OS X y bastante difícil en Windows. Cuando sigas las guías de compilación e instales las bibliotecas apropiadas antes, FFmpeg ahora te da la opción de usar libfdk_aac.
Es por eso que su salida es más grande que la entrada, porque a diferencia de MP3, ALAC todavía está comprimido, pero debe ser sin pérdidas, es por eso que necesita almacenar más datos.
.aacno es un contenedor de salida para audio ALAC. Si usa AAC, eso debería funcionar. Sin embargo, usaría MP4 o M4A.
En Ubuntu 12.04 no pude usar una opción -c:a, ¿tiene algún sinónimo? Supongo que podría significar, -acodec:apero al final lo dejé caer y ffmpegpude deducir un códec basado en el nombre del archivo de salida deseado. (Sin -strict experimentalembargo, es necesario; y lo arrojé -map_metadata 0:0por si
acaso
También vale la pena señalar: quería archivos M4B (audiolibros), que ffmpegno parecen admitir, pero la conversión a M4A y luego simplemente cambiar el nombre parece funcionar.
@slhck: ¡Gracias por la rápida actualización y el enlace!
tripleee
1
@tripleee En realidad no, los archivos .m4a son idénticos a .mp4 (es solo una convención de nomenclatura para archivos mp4 solo con audio), pero tienen un formato diferente que .aac (que se conoce como flujo ADTS). También puede forzar la salida de FFmpeg en formato ADTS agregando -f adts.
Bigue Nique
4
Fácil conversión a AAC para Zeranoe Windows Builds
"FFmpeg puede admitir tres codificadores AAC-LC (aac, libfaac, libfdk_aac) y un codificador HE-AAC (v1 / 2) (libfdk_aac). Las licencias de libfaac y libfdk_aac no son compatibles con la GPL, por lo que la GPL no permite distribución de binarios que contienen código con licencia bajo estas licencias cuando también se incluye el código con licencia GPL ".
-c:a
, ¿tiene algún sinónimo? Supongo que podría significar,-acodec:a
pero al final lo dejé caer yffmpeg
pude deducir un códec basado en el nombre del archivo de salida deseado. (Sin-strict experimental
embargo, es necesario; y lo arrojé-map_metadata 0:0
por siffmpeg
no parecen admitir, pero la conversión a M4A y luego simplemente cambiar el nombre parece funcionar.ffmpeg
, pero realmente no es de FFmpeg, sino de la bifurcación de Libav. Ubuntu desafortunadamente lo incluyó en lugar del ffmpeg "real". Ver: ¿Quién me puede decir la diferencia y la relación entre ffmpeg, libav y avconv?-f adts
.Fácil conversión a AAC para Zeranoe Windows Builds
Use "aac" en lugar de libfaac o libfdk_aac: https://trac.ffmpeg.org/wiki/Encode/AAC
"FFmpeg puede admitir tres codificadores AAC-LC (aac, libfaac, libfdk_aac) y un codificador HE-AAC (v1 / 2) (libfdk_aac). Las licencias de libfaac y libfdk_aac no son compatibles con la GPL, por lo que la GPL no permite distribución de binarios que contienen código con licencia bajo estas licencias cuando también se incluye el código con licencia GPL ".
fuente
libfaac
El soporte también se ha eliminado a partir de 3.2.