我正在使用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
问题,但没有纠正歌词问题。
答案 0 :(得分:0)
我无法用ffmpeg
解决歌词问题,但能够将歌词从LYRICS-ENG
元数据字段复制到USLT
字段。
我使用Mp3tag工具批量复制数据。
它具有用于批量操作的操作功能。
我做了什么:
答案 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"