各位大佬 如何用代码的方式将苹果的实况图 HEIF/HEIC 导出为 MOV/MP4 视频?

157 天前
 whoami9426

注意审题,用代码,不是用苹果官网说的用'照片'app,或者其他 IOS 一样导出

1537 次点击
所在节点    macOS
6 条回复
ranaanna
157 天前
苹果的一张 live photo 本身就是两个文件,一个是扩展名为 HEIC 的静态图像,另一个是同名的扩展名为 MOV 的动态视频。如果在电脑端从 icloud 下载照片,直接就是这两个文件,或者是包含这两个文件的 zip 文件。不需要导出也不可能从 HEIC 文件导出视频,因为这个 HEIC 文件只是单张图像,不是图像序列
whoami9426
157 天前
@ranaanna Mac 是可以将实况图导出为 MOV 视频的, 将实况图隔空投送到 Mac ,文件后缀为 HEIC,使用'照片'应用打开图片,在文件菜单,选择导出选项,选择'导出照片未修改的原片',导出选择保存后,会得到 HEIC 和 MOV 两个文件. Mac 的照片应用就实现了 我这个从 `实况图 HEIC 导出到 MOV 视频` 的需求,可是我想在服务端实现这个需求,不知道有没有这种实现的可能性
ranaanna
157 天前
@whoami9426 当然有啦,苹果提供了相关的 SDK 、API 以及 Node.js 模块来支持 Live Photos ,"导出为"视频这样的需求,不在话下的啦,详情见 https://developer.apple.com/live-photos/
linKnowEasy
156 天前
先理解一下一楼说的概念
苹果的实况图或者说 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 之后. 自己本地合成或者实现即可
labdum
155 天前
可以试试:
安装工具

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
whoami9426
155 天前
@ranaanna 感谢你的提醒,苹果这个 js sdk 我看了,只支持根据提供的 图片和视频 url,来显示为 实况图,没有将实况图导出为 图片和视频 的功能

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1051884

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX