ffmeg가 id3 태그를 쓰지 않는 이유는 무엇입니까?

ffmeg가 id3 태그를 쓰지 않는 이유는 무엇입니까?

현재 다음 명령을 사용하여 여러 .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

입력에서 메타데이터는 파일/컨테이너 수준에 저장되지 않습니다(Ogg 메타데이터약간 지저분해 보이지만) 스트림 수준에서는 첫 번째 스트림 내부(예:보비스 코멘트).

출력 형식에서 MP3 메타데이터(ID3 태그)는절대스트림당이지만 파일당만 가능합니다. ffmpeg는 오디오 스트림에 대해 복사한 모든 메타데이터를 표시하지만 그 중 어떤 것도 MP3 파일에 저장할 수 없습니다. (한 프레임이 어떻게 구성되는지 참고하세요.하다저장소, TSSE는 파일 수준에서 표시됩니다.)

-map_metadata 0:s:0Ogg/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 프레임에 매핑되며 TXXXfoobar2000에서는 표시될 수 있지만 iTunes에서는 전혀 표시되지 않을 수 있습니다.)

관련 정보