¿Puede FFmpeg convertir archivos mp3 en m4a en su totalidad, es decir, con tanto audio y vídeo arroyos (jpeg cubierta) copiado?

Yo uso Zeranoe construir de FFmpeg. Se convierte archivos mp3 en archivos m4a muy bien, en lo que respecta a la secuencia de audio se refiere, pero no puedo encontrar una manera de mantener el álbum de la canción de la portada jpeg, que ffmpeg por alguna razón reconoce como

Stream #0:1: Video: mjpeg, yuvj420p, 200x200 [SAR 120:120 DAR 1:1] 

Incluido en el archivo output.m4a . Cuando uso la siguiente línea de comandos:

 ffmpeg.exe -i 09.mp3 -map 0 -codec:a libvo_aacenc -ab 320k -ar 44100 -ac 2 -codec:v copy output.m4a 

Tengo la no tag, codec not currently in the container error del no tag, codec not currently in the container . Y sin embargo, cuando ejecuto ffprobe con un archivo .m4a ctreated por iTunes, ahí está:

 Stream #0:1: Video: mjpeg, yuvj420p, 350x350 [SAR 72:72 DAR 1:1] 

Por lo tanto, ¿hay una manera de copiar la cubierta de canciones, así con la conversión ffmpeg?

Por lo que a mí respecta, no hay forma fácil de decirle a FFmpeg que establezca las ilustraciones del álbum para un contenedor MP4, que normalmente se usaría para audio AAC ( .m4a ). Sin embargo, puede utilizar AtomicParsley para agregar las ilustraciones más adelante, a través de la línea de comandos.

Así es como puede instalar AtomicParsley:

  • Todos los sistemas operativos tienen binarios de la página SourceForge
  • Las distribuciones de Linux podrían tenerlo en los paquetes, es decir, apt-get install atomicparsley
  • OS X a través de Homebrew con brew install atomicparsley

Pero primero, necesitaremos extraer la ilustración, por ejemplo, como un archivo JPEG:

 ffmpeg -i input.mp3 artwork.jpg 

A continuación, podemos utilizar AtomicParsley para agregar la ilustración del álbum:

 AtomicParsley output.m4a --artwork artwork.jpg 

Esto no sobrescribirá el archivo original, sino que creará un archivo temporal en su lugar, por ejemplo, output-temp-15274.m4a . Si desea que el original se sobrescriba, agregue la opción --overWrite al comando, por ejemplo:

 AtomicParsley output.m4a --artwork artwork.jpg --overWrite 

Y voilà:

¡Gracias!

Archivo de proceso de Windows útil:

@ECHO OFF REM Extrating la carátula de la portada del álbum y el redimensionamiento a 300×300 en archivo temporal en formato PNG REM porque FFMPEG no puede manejar correctamente la portada directamente … ffmpeg -i% 1 -an -vcodec png -vf scale = 300: -1 arttemp . Png -y REM timeout 30

REM El FFMPEG no aplica el filtro LowPass, pero no hay tanto control REM sobre otros parámetros, sino que en las pruebas fue la tasa REM VBR más apropiada (350 ~ 400 Kbps) … ffmpeg -i% 1 -acodec aac -ab 512k -ac 2 -vn% 2 -y REM timeout 30

REM Aplicando ya la imagen de la portada extraída del archivo original REM con este nuevo "AtomicParsley" … AtomicParsley% 2 –artwork arttemp .png –overWrite REM timeout 30

REM Eliminación del archivo temporal de la portada … del arttemp .jpg REM timeout 30

FFmpeg tiene un problema abierto en esta funcionalidad. Mientras tanto, se pueden agregar cubiertas con el proyecto TagEditor . Para agregar:

 tageditor -s cover=ju.jpg --max-padding 100000 -f ki.m4a 

Para eliminar:

 tageditor -s cover= --max-padding 100000 -f ki.m4a