小编dmi*_*ova的帖子

在 linux 中通过命令行在 OGG 中嵌入专辑封面

我想将我的音乐从 flac 转换为 ogg,目前 oggenc 除了专辑封面之外完美地做到了这一点。Metaflac 可以输出专辑封面,但是似乎没有命令行工具可以将专辑封面嵌入 ogg。MP3Tag和的EasyTag是能够做到这一点,有它的规范在这里它要求为Base64编码格式的图像。但是到目前为止,我未能成功获取图像文件,将其转换为 base64 并将其嵌入到 ogg 文件中。

如果我从已经嵌入图像的 ogg 文件中获取 base64 编码图像,我可以使用 vorbiscomment 轻松将其嵌入到另一个图像中:

vorbiscomment -l withimage.ogg > textfile
vorbiscomment -c textfile noimage.ogg
Run Code Online (Sandbox Code Playgroud)

我的问题是将 jpeg 之类的内容转换为 base64。目前我有:

base64 --wrap=0 ./image.jpg
Run Code Online (Sandbox Code Playgroud)

这给了我转换为 base64 的图像文件,使用 vorbiscomment 并遵循标记规则,我可以将其嵌入到 ogg 文件中,如下所示:

echo "METADATA_BLOCK_PICTURE=$(base64 --wrap=0 ./image.jpg)" > ./folder.txt
vorbiscomment -c textfile noimage.ogg
Run Code Online (Sandbox Code Playgroud)

但是,这给了我一个图像无法正常工作的 ogg。我注意到在比较 base64 字符串时,所有正确嵌入的图片都有一个标题行,但我生成的所有 base64 字符串都缺少这个标题。进一步分析header:

od -c header.txt
0000000  \0  \0  \0 003  \0  \0  \0  \n   i   m   a   g   e   /   j   p …
Run Code Online (Sandbox Code Playgroud)

linux ogg album-art

18
推荐指数
2
解决办法
1万
查看次数

标签 统计

album-art ×1

linux ×1

ogg ×1