如何停止ffmpeg处理mp3元数据?

时间:2018-07-31 16:06:54

标签: ffmpeg

我正在使用ffmpeg更改mp3文件的比特率。它运作良好,但是很令人沮丧。

ffmpeg自动更改某些元数据字段。具体来说,它将ID3v2.3转换为ID3v2.4,并且执行不正确。例如,它写入{3)中实际上不存在的TYER字段。但是最令人沮丧的是,它将USLT字段转换为lyrics-LANGCODE(例如lyrics-eng)。大多数音乐播放器无法识别此标签!

我不希望ffmpeg弄乱元数据字段。我只希望它改变比特率。无论如何,有什么要告诉ffmpeg它不应接触任何元数据字段?

我在Windows 64位系统中运行ffmpeg 4.0.2。选项是:

ffmpeg -i input.mp3 -codec:a libmp3lame -b:a 128k output.mp3

不,-id3v2_version 3没有帮助。它纠正了TYER问题,但没有纠正歌词问题。

2 个答案:

答案 0 :(得分:0)

我无法用ffmpeg解决歌词问题,但能够将歌词从LYRICS-ENG元数据字段复制到USLT字段。
我使用Mp3tag工具批量复制数据。
它具有用于批量操作的操作功能。

我做了什么:

  • 动作->动作
  • 新建->新建->格式值
  • “字段”:UNSYNCEDLYRICS,“格式字符串”:%LYRICS-ENG%
  • 导航到包含文件的文件夹,选择它们并执行创建的操作

答案 1 :(得分:0)

我在ffmpeg和第一个问题的答案之间混合使用:由于下面的cmd循环,我首先转换了完整的文件文件夹(在这种情况下,将.flac文件转换为.mp3)。现在,我正在更改整个iTunes库的比特率,以减少它的位置,而ffmpeg确实更改了歌词的标签。但是使用mp3tag并创建此动作使我可以将它们切换回iTunes知道的标签。这是一种非常快捷的方法,而且我已经搜索了很长时间了!

FOR /F "tokens=*" %G IN ('dir /b *.flac') DO ffmpeg -i "%G" -ab 320k -acodec mp3 "3%~nG.mp3"