
현재 다음 명령을 사용하여 여러 .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: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
foobar2000에서는 표시될 수 있지만 iTunes에서는 전혀 표시되지 않을 수 있습니다.)