+
95
-

回答

使用ffmpeg -metadata 后面跟 = 就可以修改相应的tag了。

$ ffmpeg -i track12.mp3 -metadata album="Closer" You\ Raise\ Me\ Up.mp3

重复使用-metadata加 key/value 修改多个tag

$ ffmpeg -i track12.mp3 -metadata album="Closer" -metadata artist="Josh Groban" You\ Raise\ Me\ Up.mp3

把value置空来删除某个标签,比如删掉 genre 标签

$ ffmpeg -i track12.mp3 -metadata genre="" You\ Raise\ Me\ Up.mp3

可见使用 ffmpeg 修改tag是很简单的事,但难的是不知道音乐文件都有什么标签,或者我的音乐文件已经存在哪些标签,Windows上在音乐文件右键查看属性在详细页里有很多属性,iTunes里右键查看也能看到,那么标准的音乐文件都有哪些tag呢:

800_auto

进阶使用

清除音乐文件所有的tag信息(-map_metadata -1可清除所有metadata信息):

$ ffmpeg -i track12.mp3 -map_metadata -1 out.mp3

把音乐文件的metadata信息导出到文件里:

$ ffmpeg -i track12.mp3 -f ffmetadata metadata.txt

可对输出的 metadata.txt 进行修改,完事后重新写入到文件里。ffmetadata文件的格式如下:

;FFMETADATA1

title=You Raise Me Up
;逗号可以添加注释
artist=Josh Groban

[CHAPTER]
TIMEBASE=1/1000
START=0
#chapter ends at 0:01:00
END=60000
title=chapter \#1
[STREAM]
title=多行\

多行

把 metadata.txt 文件写入音乐文件

$ ffmpeg -i track12.mp3 -i metadata.txt -map_metadata 1 -c:a copy -id3v2_version 3 -write_id3v1 1 out.mp3

-map_metadata 1:代表使用输入顺序为1的文件,作为metadata,也就是 metadata.txt,这个数字和 -i的重复的次数有关,从0开始计数。

-c:a codec audio的意思,这里用的是 copy,不写也行,默认值就是。

-id3v2_version 3和-write_id3v1 1是为了对Windows兼容加上的,否则在Windows上会出现问题。

除了ffmpeg还有诸多的工具,lame还可以向音乐文件里插入图片:

$ lame --ai <path/to/*.[jpg|png|gif]> <*.mp3> [out.mp3]

网友回复

我知道答案,我要回答