2

В настоящее время я использую следующую команду для передачи нескольких файлов .ogg через ffmpeg

for x in *.ogg; do ffmpeg -i "$x" -ab 320k -write_id3v2 1 "`basename "$x" .ogg`.mp3"; done

Это работает и распечатывает следующую информацию

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

Но когда я загружаю файлы в iTunes, тегов id3 там нет.

Я пытался использовать его с параметром -write_id3v2 1 и без него, но он все равно не работает.

Что я делаю неправильно?

1 ответ1

4

В ваших входных данных метаданные хранятся не на уровне файла / контейнера (метаданные Ogg кажутся беспорядочными), а на уровне потока внутри 1-го потока (как комментарий Vorbis).

В вашем выходном формате метаданные MP3 (теги ID3) никогда не передаются для каждого потока, а только для каждого файла. Даже если ffmpeg показывает все метаданные, которые он скопировал для аудиопотока, он не может сохранить их в файле MP3. (Обратите внимание , как один кадр он делает магазин, TSSE показан на уровне файлов.)

Используйте -map_metadata 0:s:0 для правильного перевода макета Ogg/Vorbis в MP3. Как видно на странице руководства:

   -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

(Обратите внимание, что поля, не распознаваемые ffmpeg, будут сопоставлены с кадрами ID3 TXXX , которые iTunes, вероятно, не будет отображать вообще, хотя foobar2000 может.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .