Por que o ffmeg não grava tags id3?

1

Atualmente, uso o seguinte comando para canalizar vários arquivos .ogg por meio de ffmpeg

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 eu carrego os arquivos no iTunes, as tags id3 não estão lá.

Eu tentei usá-lo com e sem a opção -write_id3v2 1 , mas ainda não funciona.

O que estou fazendo de errado?

    
por Franz Skuffka 04.04.2018 / 14:02

1 resposta

3

Em sua entrada, os metadados não são armazenados no nível de arquivo / recipiente ( metadados Ogg parece um pouco confuso), mas em nível de fluxo, dentro do primeiro fluxo (como um comentário de Vorbis ).

No formato de saída, os metadados de MP3 (tags ID3) são nunca por fluxo, mas apenas por arquivo. Embora o ffmpeg mostre todos os metadados que copiou para o fluxo de áudio, não é possível armazenar nenhum deles em um arquivo MP3. (Observe como o único quadro que ele faz armazena, TSSE , é mostrado no nível do arquivo.)

Use o -map_metadata 0:s:0 para traduzir corretamente o layout Ogg / Vorbis para MP3. Como pode ser visto na pá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 ID3 TXXX frames, que o iTunes provavelmente não mostrará, embora foobar2000 possa.)

    
por 04.04.2018 / 14:34