如何阻止ffmpeg操纵mp3元数据?
我正在使用ffmpeg更改mp3文件的比特率。它工作得很好,但有一件事非常令人沮丧 ffmpeg会自动更改某些元数据字段。具体地说,它将ID3v2.3转换为ID3v2.4,但操作不正确。例如,它写入了ID3v2.4中实际上不存在的如何阻止ffmpeg操纵mp3元数据?,ffmpeg,Ffmpeg,我正在使用ffmpeg更改mp3文件的比特率。它工作得很好,但有一件事非常令人沮丧 ffmpeg会自动更改某些元数据字段。具体地说,它将ID3v2.3转换为ID3v2.4,但操作不正确。例如,它写入了ID3v2.4中实际上不存在的TYER字段。但最令人沮丧的是,它将USLT字段转换为歌词LANGCODE(如歌词eng)。大多数音乐播放器都无法识别此标签 我不想让ffmpeg弄乱元数据字段。我只想让它改变比特率。是否有必要告诉ffmpeg它不应该接触任何元数据字段 我正在windows 64位中运
TYER
字段。但最令人沮丧的是,它将USLT
字段转换为歌词LANGCODE
(如歌词eng
)。大多数音乐播放器都无法识别此标签
我不想让ffmpeg弄乱元数据字段。我只想让它改变比特率。是否有必要告诉ffmpeg它不应该接触任何元数据字段
我正在windows 64位中运行ffmpeg 4.0.2。选项包括:
ffmpeg -i input.mp3 -codec:a libmp3lame -b:a 128k output.mp3
没有,
-id3v2\u版本3
没有帮助。它纠正了TYER的问题,但没有歌词问题。我无法用ffmpeg
解决歌词问题,但能够将歌词从Lyps-ENG
元数据字段复制到USLT
字段。我使用该工具批量复制数据。
它具有批处理操作的操作功能 我所做的:
- 动作->动作
- 新建->新建->格式值
- “字段”:未同步歌词,“格式字符串”:%LYRS-ENG%
- 导航到包含文件的文件夹,选择它们并执行创建的操作
FOR /F "tokens=*" %G IN ('dir /b *.flac') DO ffmpeg -i "%G" -ab 320k -acodec mp3 "3%~nG.mp3"
FFmpeg将重写标记,默认版本为2.4。歌词也会像你看到的那样写出来。你能用输出文件再次确认TYER是用你的第一个命令写的吗?@Gyan是的,如果原始文件是2.3,它会写TYER。如果原始文件是2.4,则不会。无法在此处复制它。已通过Exiftool检查。创建后,您是否在单独的命令中检查输出?我使用
strings
重新检查了输出。它就在我的输入中;它有-id3v2\u版本3
输出;不存在。Th输入标记格式不正确。泰勒应该是4(+1)个字符;在您的输入中,它是10个字符。ffmpeg的ID3解析器不会完全中止,而是将TXXX帧中的key+值写入输出。可能被认为是一个bug。