Estoy usando ffmpeg para extraer solo la transmisión de audio de un archivo de video:
ffmpeg -i video.mp4 -vn -acodec copy audio.aac
Esto produce un archivo de audio limpio pero sin metadatos.
Para agregar metadatos, ffmpeg tiene una opción de línea de comando:
ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.aac
Esto se ejecuta sin error, pero cuando el archivo de salida se verifica con ffprobe, no tiene etiquetas de metadatos.
Si el contenedor de salida se cambia a mp4, los metadatos se pueden configurar y aparecer en el archivo de salida:
ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.mp4
Aquí está lo interesante; si uso Banshee para editar los metadatos de un archivo .aac existente, luego uso ffmpeg para procesar el archivo de la misma manera, los metadatos originales se copian con éxito en el nuevo archivo .aac.
ffmpeg -i metadata.aac -vn -acodec copy audio.aac
pero los intentos de cambiar los metadatos no tienen efecto:
ffmpeg -i metadata.aac -vn -acodec copy -metadata title="My Title" audio.aac
Parece que el contenedor .aac puede contener metadatos y ffmpeg puede copiarlo de entrada a salida, pero no puede alterarlo cuando se usa el códec de copia.
¿Alguien sabe de una manera de obtener ffmpeg para alterar los metadatos en un contenedor aac sin volver a codificar?
Alternativamente, ¿hay otra herramienta genérica que podría estar usando para establecer los metadatos después de que se haya procesado el archivo?
Muchas gracias. Chris
MP4Box (parte del paquete "gpac") envuelve archivos AAC con contenedores MP4 sin alterar los datos originales. Los metadatos se pueden agregar utilizando casi cualquier pieza de software de etiquetado:
fuente