FLAC 转 ALAC,顺便加入封面

参考代码:https://github.com/HBSpy/music163

FLAC to ALAC

1
ffmpeg -i input.flac -acodec alac -vn output.m4a

从云音乐获取的FLAC有时封面会有问题

1
2
3
4
5
6
7
8
9
[mjpeg @ 0x227f2c0] bits 223 is invalid
[flac @ 0x227c400] decoding for stream 1 failed
[flac @ 0x227c400] Could not find codec parameters for stream 1 (Video: mjpeg, none(bt470bg/unknown/unknown), lossless): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options

...

Automatic encoder selection failed for output stream #0:0. Default encoder for format ipod (codec h264) is probably disabled. Please choose an encoder manually.
Error selecting an encoder for stream 0:0

这里使用-vn去掉封面图片,后续再通过其它方式添加

添加封面

封面图片获取

云音乐的FLAC备注中有163 key(Don’t modify):xxx,可以解密得出JSON

  • 算法: AES-128-ECB
  • KEY: #14ljk_!]&0U<'(

从albumPic字段获取封面图片地址

iTunes可识别的封入封面图片

到目前为止,直接使用ffmpeg封入封面,iTunes还是不能识别的

有给视频添加Cover的方式

1
ffmpeg -i input.m4a -i image.jpg -map 0 -map 1 -c copy -disposition:v:1 attached_pic output.m4a

但iTunes是识别不了的

目前使用AtomicParsley封入封面,https://github.com/wez/atomicparsley

1
./AtomicParsley output.m4a --artwork cover.jpg

–overWrite 参数有些编译版本似乎没有,手动重命名吧