注意审题,用代码,不是用苹果官网说的用'照片'app,或者其他 IOS 一样导出
1
ranaanna 145 天前
苹果的一张 live photo 本身就是两个文件,一个是扩展名为 HEIC 的静态图像,另一个是同名的扩展名为 MOV 的动态视频。如果在电脑端从 icloud 下载照片,直接就是这两个文件,或者是包含这两个文件的 zip 文件。不需要导出也不可能从 HEIC 文件导出视频,因为这个 HEIC 文件只是单张图像,不是图像序列
|
2
whoami9426 OP @ranaanna Mac 是可以将实况图导出为 MOV 视频的, 将实况图隔空投送到 Mac ,文件后缀为 HEIC,使用'照片'应用打开图片,在文件菜单,选择导出选项,选择'导出照片未修改的原片',导出选择保存后,会得到 HEIC 和 MOV 两个文件. Mac 的照片应用就实现了 我这个从 `实况图 HEIC 导出到 MOV 视频` 的需求,可是我想在服务端实现这个需求,不知道有没有这种实现的可能性
|
3
ranaanna 145 天前
@whoami9426 当然有啦,苹果提供了相关的 SDK 、API 以及 Node.js 模块来支持 Live Photos ,"导出为"视频这样的需求,不在话下的啦,详情见 https://developer.apple.com/live-photos/
|
4
linKnowEasy 145 天前
先理解一下一楼说的概念
苹果的实况图或者说 Live Photo , 实际本质就是 一张图和一个 mov 视频 一个 Live Photo 可以拆分出 一张图和一个 mov 视频 一个 mov 和一张图可以合成 Live Photo, 下面一个是理论, 一个是 Demo 你可以看一下 https://juejin.cn/post/7095557805423198221 https://github.com/upyun/ios-sdk/blob/master/UpYunSDKDemo/UpYunSDKDemo/UPLivePhotoViewController.m 所以针对你说的想要在服务端实现这个需求. 没有这个需求, Live Photo 是特殊的格式, 只会在苹果的系统上生效 服务端是不需要有 Live Photo 这个格式的概念. 只要保证 图片和 mov 是对应的, 各平台拿到 图片和 mov 之后. 自己本地合成或者实现即可 |
5
labdum 144 天前
可以试试:
安装工具 brew install ffmpeg brew install libheif 创建文件夹 mkdir -p /Users/你的用户名/Downloads/live_photos 转换并放到文件夹 find /Users/username/Pictures/Photos\ Library.photoslibrary/originals -type f -name "*.HEIC" -print0 | while IFS= read -r -d '' file; do filename=$(basename "$file" .HEIC) # Extract the video from HEIC Live Photo heif-convert "$file" "/Users/你的用户名/Downloads/live_photos/${filename}.mov" done |
6
whoami9426 OP @ranaanna 感谢你的提醒,苹果这个 js sdk 我看了,只支持根据提供的 图片和视频 url,来显示为 实况图,没有将实况图导出为 图片和视频 的功能
|