将苹果实况照片(Live Photos)上传到谷歌相册

苹果实况照片(Live Photos)

苹果的实况照片在文件系统中是一个.heic文件和一个.mov文件,前者是照片,后者是视频。

如果直接上传到谷歌相册,会被当成两个独立的文件,成为一张照片和一个视频。

上传至谷歌相册

如果在iOS设备上使用谷歌相册iOS端上传,会是一个动态照片。打开后默认是照片,点击后可以播放。

但如果经过中转,从iOS设备导出变成.heic和.mov两个文件(icloudpd导出的格式是IMG_7434.HEICIMG_7434_HEVC.MOV),再通过谷歌相册应用网页端或者安卓端上传,就会变成两个独立的文件。

试验:转换为谷歌动态照片上传

首先.heic文件可以使用magick轻松转为兼容性更好的.jpg。

1
magick ./IMG_7434.HEIC ./IMG_7434.jpg

然后根据Working with Motion Photos这篇文章的分析,借助MotionPhotoMuxer工具,将其合并为一张动态照片。

得到的动态照片在Motion-Photo-Viewer上可以正常播放,但却无法使用谷歌相册应用网页端上传,会提示格式错误。

猜测是因为不支持HEVC格式,需要将视频转换为H.264格式。回头试试。

1
ffmpeg -i ./IMG_7434_HEVC.MOV -c:v libx264 ./IMG_7434.MOV

最新结果:转换为H.264格式后,谷歌相册应用网页端上传,一切正常。

写了一个docker来自动完成转换:docker-live-photos-converter

试验:将文件名改成完全一致

v2ex上有个帖子讨论了live photo,里面有人提到,需要将文件名改成完全一致。

icloudpd导出的格式是IMG_7434.HEICIMG_7434_HEVC.MOV,文件名不一致。

改成IMG_7434.HEICIMG_7434.MOV上传后,还是不行。