我一直在向 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
但它不起作用。我的控制台输出是:
Unrecognized option 'c'
Failed to set value 'copy' for option 'c'
我寻找另一种解决方案并得到了这个:
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'
有人可以帮助我吗?
我使用的是 ubuntu 12.04 和 ffmpeg 版本 0.8.6-4:0.8.6-0。
谢谢。
使用最新版本,
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
选项将被很好地解释
注意:元数据注释区分大小写。
这里有一件重要的事情需要注意,这让我失去了一个小时的工作:
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
comment="Cover (front)"
中的f
必须为小写。否则,将不会设置 ID3 标题中的图片类型!
另一个可能对某人有帮助的提示:为避免将 JPEG 封面图像转换为 png,您必须设置 -codec copy
。
这就是我将不同的输入/源格式(在本例中为 video.ts)转换为 MP3 的方式,并且还一次性将封面艺术添加到结果 MP3 中(一个命令):
ffmpeg -ss 5 -to 13 -i video.ts -i logo.png -map 0:a -map 1:0 -c:1 copy -b:a 320k -id3v2_version 3 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (front)" result.mp3
注意
如果 ffmpeg 失败并出现错误,请尝试从命令中省略-metadata:s:v title="Album cover" -metadata:s:v comment="Cover (front)"
。
命令中使用的选项说明:
选择 | 必填? | 描述 |
---|---|---|
-ss 5 | 自选 | 指定输入的开始时间(以秒为单位) |
-to 13 | 自选 | 指定输入的结束时间(以秒为单位) |
-i video.ts | - | 第一个输入(要转换的文件) |
-i logo.png | - | 第二个输入(专辑/封面) |
-map 0:a | - | 从输入0 (又名 video.ts)中选择音频 ( a ) |
-map 1:0 | - | 从输入1 (又名徽标.png)中选择第一个流(0 ) |
-c:1 copy | 自选 | 将第二个输入(图像)的编解码器设置为 copy (无转换) |
b:a 320k | 自选 | 将音频流的比特率设置为 320k ;请参阅脚注 1 中的接受值 |
问题是您没有定义要复制的编解码器。如果音频应该-c:a copy
封面被识别为视频(去图!!),所以-c:v copy
ffmpeg -i audio-in.mp3 -i picture.png -c:a copy -c:v copy -map 0:0 -map 1:0 -id3v2_version 3 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (front)" audio-out.mp3
无法评论,但 Mahozad 的回答为我提供了诀窍,只是添加了 -map 0:a(而不仅仅是"0"或"0:0")和 -map 1:0,没有其他任何东西:
ffmpeg -i url.m3u8 -i url.jpg -map 0:a -map 1:0 file:output.mp3