如何用ffmpeg添加专辑封面?

时间:2013-09-10 04:57:47

标签: ffmpeg albumart

我一直坚持在mp3文件上添加专辑封面。

我已经研究过这个问题,但是还没有找到解决方案。 ffmpeg文档建议使用此脚本将图像(专辑封面)添加到mp3:

ffmpeg -i input.mp3 -i cover.png -c copy -map 0 -map 1 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" out.mp3

来自:http://www.ffmpeg.org/ffmpeg-all.html#mp3

但它不起作用。我的控制台输出是:

Unrecognized option 'c'
Failed to set value 'copy' for option 'c'

我找了另一个解决方案并得到了这个:http://trac.ffmpeg.org/ticket/2221

ffmpeg -i input.mp3 -i cover.png -map 0:0 -map 1:0 -c copy -id3v2_version 3 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" out.mp3

返回相同的输出:

Unrecognized option 'c'
Failed to set value 'copy' for option 'c'

有人可以帮助我吗?

nb:我使用的是ubuntu 12.04和ffmpeg版本0.8.6-4:0.8.6-0。

感谢。

3 个答案:

答案 0 :(得分:27)

使用最新版本,

ffmpeg -i in.mp3 -i test.png -map 0:0 -map 1:0 -c copy -id3v2_version 3 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (front)" out.mp3

使用-map将输入流关联到输出
使用-c copy直接解复用/重新启动
-id3v2_version 3是命令行中缺少的内容。请注意,这将写一个IDV2.3,但你可以要求2.4(-id3v2_version 4

使用-id3v2_version 3选项,-metadata选项将被很好地解释

注意:元数据注释区分大小写。

答案 1 :(得分:10)

这里有一件重要的事情需要注意,这让我失去了一小时的工作时间:

ffmpeg -i in.mp3 -i test.jpeg -map 0:0 -map 1:0 -codec copy -id3v2_version 3 \ 
-metadata:s:v title="Album cover" -metadata:s:v comment="Cover (front)" out.mp3

f中的comment="Cover (front)"必须为小写。如果没有,ID3标题中的图片类型将不会被设置!

可能有助于某人的另一个提示:为避免将JPEG封面图像转换为png,您必须设置-codec copy

答案 2 :(得分:1)

问题在于您没有定义要复制的编解码器。如果音频应为int sock = socket(AF_INET,SOCK_STREAM,0); ,则封面被识别为视频(实物图!),因此-c:a copy

-c:v copy