2

Хотя FFmpeg утверждает, что поддерживает теги ID3v2.4, есть одна вещь, которую я не могу заставить работать должным образом. Спецификации ID3v2.4 утверждают следующее:

В теге может быть только один фрейм текстовой информации в своем роде. Все текстовые информационные фреймы поддерживают несколько строк, хранящихся в виде списка, разделенного нулями, где ноль представлен кодом завершения для кодировки символов.

Тем не менее, когда я использую 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 ответ1

0

Нет. Хотя теги в ID3 v2.4 поддерживают несколько строк, синтаксический анализатор ID3v2 прекращает извлечение строк при достижении значения NULL вместо использования полной длины тега.

Отправьте отчет об ошибке на https://trac.ffmpeg.org.

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