我一直坚持在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。
感谢。
答案 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