有没有办法将封面图片嵌入m4a
个文件?
这个适用于mp3
,但不适用于m4a
ffmpeg -i tests/in.m4a -i cover.jpg -map 0:0 -map 1:0 -acodec copy \
-id3v2_version 3 tests/out.m4a
答案 0 :(得分:13)
mp4art
的 mp4v2
也可以这样做:
mp4art --add cover.jpg track.m4a
我尝试了mp4art,添加封面后,来自 FFmpeg 的信息是这样的:
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fce82011400] stream 0, timescale not set
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '01 - Welcome To New York.m4a':
Metadata:
major_brand : M4A
minor_version : 512
compatible_brands: isomiso2
title : Welcome To New York
artist : Taylor Swift
album : 1989 (Deluxe)
date : 2014
encoder : Lavf55.48.100
genre : Country & Folk
track : 1
disc : 1
Duration: 00:03:32.65, start: 0.046444, bitrate: 250 kb/s
Stream #0:0(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 238 kb/s (default)
Metadata:
handler_name : SoundHandler
Stream #0:1: Video: mjpeg, yuvj444p(pc, bt470bg), 1400x1400 [SAR 72:72 DAR 1:1], 90k tbr, 90k tbn, 90k tbc
Input #1, image2, from 'Album Cover.jpg':
Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
Stream #1:0: Video: mjpeg, yuvj444p(pc, bt470bg), 1400x1400 [SAR 72:72 DAR 1:1], 25 tbr, 25 tbn, 25 tbc
似乎1个文件有2种输入格式(1 m4a,1个图像2),我认为ffmpeg应该能够自己做同样的事情,而不是使用单独的工具来添加封面图像,但我没有'弄清楚如何。
答案 1 :(得分:9)
对于ffmpeg,可以通过attached_pic
参数在图像源上指定-disposition
属性。
ffmpeg -i input.m4a -i image.jpg -map 0 -map 1 -c copy -disposition:v:1 attached_pic output.m4a
通过ffmpeg 4.2.2测试
在ffmpeg docs中也给出了类似的命令作为示例,但是请注意,该示例用于为视频添加封面,而不是为音频文件添加封面。如果选择了错误的流,则-disposition
参数会静默失败。
答案 2 :(得分:6)
FFmpeg在此功能上有open issue。与此同时,封面 可以使用TagEditor project添加。添加:
tageditor -s cover=ju.jpg --max-padding 100000 -f ki.m4a
删除:
tageditor -s cover= --max-padding 100000 -f ki.m4a
答案 3 :(得分:2)
使用atomicparsley
嵌入专辑封面的一点点扩展版本。在Mac OS X上测试。它假定当前目录中有folder.jpg
个文件。 AtomicParsley在同一文件夹中创建具有嵌入式媒体的临时文件。有一个标志--overWrite
可以改变这种行为,但由于某种原因,这对我不起作用。所以我们之后需要删除原始文件。请注意,该脚本将删除所有文件,这些文件不会在其文件名中共享temp
。所以要小心(或修改脚本)。最后,该脚本重命名新创建的文件,以从其文件名中删除-temp-
部分。
for f in *.m4a
do
atomicparsley "$f" --artwork folder.jpg
done
rm !(*temp*)
for f in *.m4a
do
g=${f//-temp*./.}
mv "$f" "$g"
done