
Atualmente, uso o seguinte comando para canalizar vários .ogg
arquivosffmpeg
for x in *.ogg; do ffmpeg -i "$x" -ab 320k -write_id3v2 1 "`basename "$x" .ogg`.mp3"; done
Funciona e imprime as seguintes informações
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
Mas quando carrego os arquivos no iTunes, as tags id3 não estão lá.
Tentei usá-lo com e sem a -write_id3v2 1
opção, mas ainda não funciona.
O que estou fazendo de errado?
Responder1
Na sua entrada, os metadados não são armazenados no nível do arquivo/contêiner (Metadados Oggparece um pouco confuso), mas no nível do fluxo, dentro do primeiro fluxo (como umComentário de Vorbis).
No seu formato de saída, os metadados MP3 (tags ID3) sãonuncapor fluxo, mas apenas por arquivo. Embora o ffmpeg mostre todos os metadados que copiou para o fluxo de áudio, ele não consegue armazenar nenhum deles em um arquivo MP3. (Observe como aquele o enquadrafazstore, TSSE
, é mostrado no nível do arquivo.)
Use -map_metadata 0:s:0
para traduzir corretamente o layout Ogg/Vorbis para MP3. Como visto nopágina de 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
(Observe que os campos não reconhecidos pelo ffmpeg serão mapeados para TXXX
quadros ID3, que o iTunes provavelmente não mostrará, embora o foobar2000 possa.)