
Actualmente uso el siguiente comando para canalizar una cantidad de .ogg
archivos a travésffmpeg
for x in *.ogg; do ffmpeg -i "$x" -ab 320k -write_id3v2 1 "`basename "$x" .ogg`.mp3"; done
Funciona e imprime la siguiente información.
Output #0, mp3, to '10 Ft. Ganja Plant_Bass Chalice_10_Bass Chalice.mp3':
Metadata:
TSSE : Lavf57.83.100
Stream #0:0: Audio: mp3 (libmp3lame), 44100 Hz, stereo, fltp, 320 kb/s
Metadata:
TITLE : Bass Chalice
ARTIST : 10 Ft. Ganja Plant
GENRE : Reggae
DATE : 2005
ALBUM : Bass Chalice
track : 10
encoder : Lavc57.107.100 libmp3lame
Pero cuando cargo los archivos en iTunes, las etiquetas id3 no están ahí.
Intenté usarlo con y sin la -write_id3v2 1
opción pero todavía no funciona.
¿Qué estoy haciendo mal?
Respuesta1
En su entrada, los metadatos no se almacenan a nivel de archivo/contenedor (metadatos oggparece un poco desordenado), pero a nivel de flujo, dentro del primer flujo (comocomentario de Vorbis).
En su formato de salida, los metadatos MP3 (etiquetas ID3) sonnuncapor secuencia pero solo por archivo. Aunque ffmpeg muestra todos los metadatos que ha copiado para la transmisión de audio, no puede almacenar ninguno de ellos en un archivo MP3. (Observe cómo uno lo enmarcahacestore, TSSE
se muestra a nivel de archivo.)
Utilice -map_metadata 0:s:0
para traducir correctamente el diseño Ogg/Vorbis a MP3. Como se ve en elpagina del manual:
-map_metadata[:metadata_spec_out] infile[:metadata_spec_in]
(output,per-metadata)
[...]
For example to copy metadata from the first stream of the input file to
global metadata of the output file:
ffmpeg -i in.ogg -map_metadata 0:s:0 out.mp3
To do the reverse, i.e. copy global metadata to all audio streams:
ffmpeg -i in.mkv -map_metadata:s:a 0:g out.mkv
(Tenga en cuenta que los campos no reconocidos por ffmpeg se asignarán a TXXX
marcos ID3, que iTunes probablemente no mostrará en absoluto, aunque foobar2000 sí podría hacerlo).