FFmpeg는 ID3v2.4 태그에서 여러 값을 읽을 수 있습니까?

FFmpeg는 ID3v2.4 태그에서 여러 값을 읽을 수 있습니까?

FFmpeg에서는 ID3v2.4 태그를 지원한다고 나와 있지만 제대로 작동하지 않는 것이 한 가지 있습니다. 그만큼ID3v2.4 사양다음을 진술하십시오:

태그에는 해당 종류의 텍스트 정보 프레임이 하나만 있을 수 있습니다. 모든 텍스트 정보 프레임은 null로 구분된 목록으로 저장된 여러 문자열을 지원합니다. 여기서 null은 문자 인코딩의 종료 코드로 표시됩니다.

그런데 FFprobe를 사용하면 첫 번째 값만 표시됩니다. 예를 들어mid3v2태그를 올바르게 표시합니다. 두 가지 출력에 대해서는 아래를 참조하세요.

mid3v2:

mid3v2 --list 01_Infinite_\(Original_Mix\).mp3
IDv2 tag info for 01_Infinite_(Original_Mix).mp3
TALB=Infinite
TBPM=150
TCON=Hardstyle / Test / Example / Hard Dance
TDRC=2017
TIT2=Infinite (Original Mix)
TPE1=B-Front / Second Artist Example
TPE2=B-Front
TPUB=Roughstate

FFmpeg:

ffprobe -hide_banner 01_Infinite_\(Original_Mix\).mp3
Input #0, mp3, from '01_Infinite_(Original_Mix).mp3':
  Metadata:
    title           : Infinite (Original Mix)
    artist          : B-Front
    album           : Infinite
    date            : 2017
    genre           : Hardstyle
    TBPM            : 150
    album_artist    : B-Front
    publisher       : Roughstate

TCON(장르) 및 TPE1(아티스트) 필드에는 NULL 문자로 구분된 여러 값이 있습니다. FFmpeg는 둘 이상의 필드를 표시하지 않습니다.

내가 뭔가를 간과하고 있는 걸까요, 아니면 이것이 FFmpeg/libavformat에 구현되지 않은 걸까요?

미리 감사드립니다!

답변1

아니요. ID3 v2.4의 ttag는 여러 문자열을 지원하지만 ID3v2 파서는 전체 태그 길이를 사용하는 대신 NULL에 도달하면 문자열 추출을 종료합니다.

다음 주소로 버그 보고서를 제출하세요.https://trac.ffmpeg.org.

관련 정보