FFmpeg,如何将封面艺术(图像)嵌入.m4a

Yar*_*lav 7 ffmpeg aac m4a mpeg-4

有没有办法将封面艺术嵌入到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
Run Code Online (Sandbox Code Playgroud)

Meo*_*eow 14

mp4artmp4v2也可以这样做:

mp4art --add cover.jpg track.m4a
Run Code Online (Sandbox Code Playgroud)

我尝试了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应该能够自己做同样的事情,而不是使用单独的工具来添加封面图像,但我还没弄清楚如何.


Luk*_*kas 13

ffmpeg 可以attached_pic通过-disposition参数指定图像源上的属性。

ffmpeg -i input.m4a -i image.jpg -map 0 -map 1 -c copy -disposition:v:1 attached_pic output.m4a 
Run Code Online (Sandbox Code Playgroud)

使用 ffmpeg 4.2.2 测试。

ffmpeg docs 中也给出了一个类似的命令作为示例,但请注意该示例是用于为视频添加封面而不是音频文件。-disposition如果选择了错误的流,该参数将静默失败。

  • 失败:[ipod @ 0x7fd692008200] 在流 #1 中找不到编解码器 png 的标签,容器中当前不支持编解码器无法为输出文件 #0 写入标头(编解码器参数不正确?):参数无效初始化输出流 0:1 时出错-- 流映射: Stream #0:0 -> #0:0 (copy) Stream #1:0 -> #0:1 (copy) 最后一条消息重复 1 次 (5认同)

小智 6

FFmpeg 在此功能上有一个未解决的问题.与此同时,可以使用TagEditor项目添加封面.加上:

tageditor -s cover=ju.jpg --max-padding 100000 -f ki.m4a
Run Code Online (Sandbox Code Playgroud)

去除:

tageditor -s cover= --max-padding 100000 -f ki.m4a
Run Code Online (Sandbox Code Playgroud)