Хотя FFmpeg заявляет о поддержке тегов ID3v2.4, есть одна вещь, которую я не могу заставить работать должным образом.Спецификации ID3v2.4заявляют следующее:
В теге может быть только один фрейм текстовой информации такого типа. Все фреймы текстовой информации поддерживают несколько строк, хранящихся в виде списка, разделенного нулем, где нуль представлен кодом завершения для кодировки символов.
Однако, когда я использую FFprobe, он показывает только первое значение. Напримерсередина3v2показывает теги правильно. Смотрите ниже оба вывода.
мид3v2:
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
Нет. Хотя теги ttags в ID3 v2.4 поддерживают несколько строк, анализатор ID3v2 прекращает извлечение строки, когда достигает NULL, вместо того чтобы использовать полную длину тега.
Отправьте отчет об ошибке по адресуhttps://trac.ffmpeg.org.