FFmpegはID3v2.4タグをサポートしていると記載されていますが、うまく動作しない点が1つあります。ID3v2.4仕様次のことを述べます。
タグ内には、その種類のテキスト情報フレームが 1 つだけ存在できます。すべてのテキスト情報フレームは、null で区切られたリストとして保存される複数の文字列をサポートします。null は、文字エンコードの終了コードで表されます。
しかし、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
いいえ。ID3 v2.4 のタグは複数の文字列をサポートしていますが、ID3v2 パーサーはタグの全長を消費するのではなく、NULL に達すると文字列の抽出を終了します。
バグレポートは以下まで送信してくださいhttps://trac.ffmpeg.org。