LIVE

实况照片里有什么:一张静图、一段视频和一个共用标识

实况照片是一张静图加一段短视频,两者共用一个标识。讲清每个文件里装了什么、“照片”怎么把它们配成一对,以及怎样让它们不被拆开。

简短回答

实况照片是两个文件:一张静图(HEIC 或 JPEG)和一段带声音的 QuickTime 短视频。两个文件里写着同一个内容标识,“照片”靠它把两者当成一项保存。两个文件一旦被拆开,比如用“邮件”只发出了静图,剩下的就是一张普通照片。

实况照片是“照片”里显示为一项的两个文件:一张静图(HEIC 或 JPEG)和一段带声音的 QuickTime 短视频。两个文件写着同一个内容标识,视频里还有一个标记,指出和静图对应的那一帧。“照片”靠这个标识配对,不靠文件名。

下面讲每个文件里装了什么、怎么配对,以及拆开之后会怎样。想用自己的视频做一张,Beavery 会把两半都替你做好。

两个文件,存成一项

Apple 的拍摄文档写得很直接:实况照片在“照片”里显示为一项,但由两个文件组成,一个是主静图,一个是带有拍照前后画面和声音的视频文件。App 把两个文件一起存进“照片”,就成了一张实况照片。

从照片图库这一侧看也是一样。一张实况照片里有一份静图资源和一份视频资源,视频那一份的类型就叫“配对视频”(paired video)。用 iPhone 相机拍的实况照片,Apple 说明会录下拍照前后各约 1.5 秒;用 Beavery 这类 App 从视频做出来的,长度就是你选的那一段。

拆开一张看看

我们用 Beavery 在 iPhone 模拟器里存了一张实况照片(步骤见这篇),再读取“照片”为它保存的两个文件。两个文件同名并排放着:IMG_0082.HEIC 和 IMG_0082.MOV。

文件 是什么 靠什么和另一个对上
IMG_0082.HEIC 静图,1080 × 1920,HEIC 格式 Apple 厂商元数据(ImageIO 的 MakerApple 字典)里的一个标识
IMG_0082.MOV 3.6 秒视频:H.264 画面、AAC 声音,外加一条元数据轨 同一个标识,写在 QuickTime 的 content.identifier;另有一个随时间的 still-image-time 标记,指出和静图对应的那一帧

两个文件里是同一串 UUID。视频这一侧有官方文档:AVFoundation 把这个键叫 quickTimeMetadataContentIdentifier。图片这一侧,Apple 只公开了 MakerApple 字典本身,没有公开具体是哪个键存标识,所以这里只写我们在这个文件里实际看到的。

“照片”怎么知道它们是一对

靠的就是这个相同的标识。Apple 关于从文件加载实况照片的文档说明,只能用当初从一张实况照片导出的那一组文件来重建,而且会先校验文件和元数据;校验不过,就没有实况照片,只剩静图。

所以文件名不重要,两个文件放不放在同一个文件夹也不重要。关键是两个文件里的标识都还在,视频也没有被重新编码弄丢元数据。

拆开之后还能合回去吗

在 Mac 的“照片”里用“文件 › 导出 › 导出未修改的原片”导出实况照片,Apple 说明会得到两个单独的文件:一张静图和一段视频。要把它们重新存回“照片”成为一张实况照片,App 得在同一个请求里把两个文件一起加进去(Apple 的 PHAssetCreationRequest);把两个文件分别拖进“照片”并不是文档里给出的做法。

Beavery 存到相册时用的就是这种一次性请求。如果选择把实况照片导出到文件夹,Beavery 会写成一个 .beaverylive 包,里面是静图、视频(motion.mov)和一份小清单,两个文件始终在一起,之后也能再用 Beavery 打开。

发出去会发生什么

Apple 文档能说明的只有这些:

  • 邮件:实况照片会作为静止图像发送。
  • 信息:在 iPhone 或 iPad 上收到后,点开再按住就会动;Mac 上的“信息”打开时会播放一次。
  • 只发静图:在共享前点照片左上角的“实况”关掉即可。

微信等聊天软件、社交平台、网盘会怎样,Apple 文档给不出答案,取决于接收方 App:把两个文件和元数据都保留下来的,能显示动态;只保留或重新压缩图片的,对方看到的就是静图。各渠道的具体情况和解决办法见实况照片发出去不动了怎么办。

两个文件什么时候会被拆开

  • 走了只发静图的渠道,比如“邮件”。
  • 接收方 App 只留下了图片,丢掉了视频。
  • 实况效果被关掉了:在“照片”里可以把实况照片设为“关闭”,它就成了普通照片。
  • 在其他 App 里编辑过。Apple 提醒,用第三方 App 编辑实况照片可能会丢失已应用的实况效果。
  • 两个文件被拆开后又被改动过,标识或元数据对不上了。

如果是用自己的视频做实况照片,存进相册,再从相册里发。这样两半能一起走多远,就看渠道本身了。排查办法见实况照片发出去不动了怎么办;动态部分的画质和 HDR 见视频转实况会不会掉画质。Beavery Mac 版存实况的方式相同。

常见问题

实况照片是不是就是一段短视频?

不是。它是一张完整的静态照片,外加一段独立的短视频。“照片”平时显示静图,按住时播放视频;静图是单独的文件,不是播放时临时从视频里截的一帧。

实况照片能用邮件发吗?

Apple 说明通过“邮件”共享的实况照片会作为静止图像发送。苹果设备之间用“信息”发送会保留动态;其他 App 取决于接收方。

实况照片有声音吗?

通常有。动态部分是一段 QuickTime 视频,Apple 说明相机会录下拍照前后的画面和声音。用无声视频或静态照片做的实况没有声音。

把两个文件配成一对的标识存在哪儿?

视频里是 QuickTime 的内容标识,Apple 有公开文档。静图里在 Apple 的厂商元数据(MakerApple)中,Apple 公开了这个字典,但没公开具体是哪个键。

我手上有照片和视频两个文件,为什么合不回实况照片?

“照片”只会把带同一个标识、元数据符合要求的静图和视频配成一对。本来就不是一对,或者在传输中被重新压缩过的两个文件,文件名一样也合不回去。

本文怎么核对的

核对依据
iPhone 17 Pro Max 模拟器,iOS 27.0:用 Beavery 存入相册一张实况照片,再从模拟器相册里读出它的两个文件,1.0 (1),调试版 da0d377
真机测试
本文的步骤尚未在真机上逐步跑过。
核对日期