有没有办法将封面艺术嵌入到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
mp4art
frommp4v2
也可以这样做:
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 image2),我认为 ffmpeg 应该能够自己做同样的事情,而不是使用单独的工具来添加封面图像,但我还没有弄清楚如何。
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 文档中也给出了一个类似的命令作为示例,但是请注意该示例是为视频而不是音频文件添加封面。如果选择了错误的-disposition
流,则参数会静默失败。
FFmpeg在此功能上有一个未解决的问题。同时,可以使用TagEditor 项目添加封面。添加:
tageditor -s cover=ju.jpg --max-padding 100000 -f ki.m4a
去除:
tageditor -s cover= --max-padding 100000 -f ki.m4a
用于嵌入专辑封面的一点扩展版本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