V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
whoami9426
V2EX  ›  macOS

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

  •  
  •   whoami9426 · 145 天前 · 1497 次点击
    这是一个创建于 145 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    6 条回复    2024-06-25 10:01:20 +08:00
    ranaanna
        1
    ranaanna  
       145 天前
    苹果的一张 live photo 本身就是两个文件,一个是扩展名为 HEIC 的静态图像,另一个是同名的扩展名为 MOV 的动态视频。如果在电脑端从 icloud 下载照片,直接就是这两个文件,或者是包含这两个文件的 zip 文件。不需要导出也不可能从 HEIC 文件导出视频,因为这个 HEIC 文件只是单张图像,不是图像序列
    whoami9426
        2
    whoami9426  
    OP
       145 天前
    @ranaanna Mac 是可以将实况图导出为 MOV 视频的, 将实况图隔空投送到 Mac ,文件后缀为 HEIC,使用'照片'应用打开图片,在文件菜单,选择导出选项,选择'导出照片未修改的原片',导出选择保存后,会得到 HEIC 和 MOV 两个文件. Mac 的照片应用就实现了 我这个从 `实况图 HEIC 导出到 MOV 视频` 的需求,可是我想在服务端实现这个需求,不知道有没有这种实现的可能性
    ranaanna
        3
    ranaanna  
       145 天前
    @whoami9426 当然有啦,苹果提供了相关的 SDK 、API 以及 Node.js 模块来支持 Live Photos ,"导出为"视频这样的需求,不在话下的啦,详情见 https://developer.apple.com/live-photos/
    linKnowEasy
        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 之后. 自己本地合成或者实现即可
    labdum
        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
    whoami9426
        6
    whoami9426  
    OP
       144 天前
    @ranaanna 感谢你的提醒,苹果这个 js sdk 我看了,只支持根据提供的 图片和视频 url,来显示为 实况图,没有将实况图导出为 图片和视频 的功能
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2770 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:10 · PVG 10:10 · LAX 18:10 · JFK 21:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.