如何删除 flac 中嵌入的图片并添加歌词?

如何删除 flac 中嵌入的图片并添加歌词?

根据FLAC 文档,图片可以存储在 flac 音频格式中,但歌词(可能是 lrc、srt,甚至 ass/ssa)未在该文档中提及。

那么,如何通过Linux平台运行的软件从flac中删除嵌入的图片,并在flac中添加歌词呢?

(优先考虑 FFmpeg/avconv。)

答案1

假设嵌入的艺术品位于 flac 标准 PICTURE 块中,那么:

metaflac --remove --block-type=PICTURE flacfile.flac

...应该这么做。

如果艺术品采用旧的、非标准的 b64 编码格式,那么:

metaflac --remove-tag=COVERART flacfile.flac

..应该会的。不过不知道歌词。

来源

相关的:http://linux.die.net/man/1/metaflac

答案2

您也可以使用 metaflac 添加歌词。假设“Tomorrow Never Knows”的歌词位于文件“2-06.lyrics”中:

$ ls
'Grateful Dead -- 2-06 - Tomorrow Never Knows.flac'   2-06.lyrics

$ metaflac --remove-tag="Lyrics" "Grateful Dead -- 2-06 - Tomorrow Never Knows.flac"

$ metaflac --set-tag-from-file="Lyrics=2-06.lyrics" "Grateful Dead -- 2-06 - Tomorrow Never Knows.flac" 

$ metaflac --show-tag="Lyrics" "Grateful Dead -- 2-06 - Tomorrow Never Knows.flac" |more
Lyrics=Turn off your mind, relax
and float down stream
--More--

如果你想通过 STDIN 将歌词粘贴到终端(例如,在网页搜索之后),然后按 [CTRL-D]:

$ metaflac --set-tag="Lyrics=$(cat -)" "Grateful Dead -- 2-06 - Tomorrow Never Knows.flac"
[paste lyrics]
^D

注意:您也可以在 ffmpeg 中执行此操作。要从文件 2-06.lyrics 读取:

$ ffmpeg -y -i "Grateful Dead -- 2-06 - Tomorrow Never Knows.flac" -codec copy -metadata "Lyrics=$(cat lyrics)" "~Grateful Dead -- 2-06 - Tomorrow Never Knows.flac"
$ mv "~Grateful Dead -- 2-06 - Tomorrow Never Knows.flac" "Grateful Dead -- 2-06 - Tomorrow Never Knows.flac"

如果你想通过 STDIN 然后按 [CTRL-D] 将歌词粘贴到终端:

$ ffmpeg -y -i "Grateful Dead -- 2-06 - Tomorrow Never Knows.flac" -codec copy -metadata "Lyrics=$(cat -)" "~Grateful Dead -- 2-06 - Tomorrow Never Knows.flac" 
[paste lyrics]
^D
$ mv "~Grateful Dead -- 2-06 - Tomorrow Never Knows.flac" "Grateful Dead -- 2-06 - Tomorrow Never Knows.flac"  

如果您想要标记整个目录,您可以将其放入 for 循环中:

$ for f in *flac; do metaflac --remove-tag="Lyrics"; printf 'Paste lyrics for %s followed by Control-D:\n' "$f"; metaflac --set-tag="Lyrics=$(cat -)" "$f"; done

相关内容