国内厂商动态照片/实况照片格式对比
Motion Photo Format on Chinese ROM
目录
除 vivo 外均为单个 jpg 文件(内嵌 mp4 视频),视频属性的声明方式不同:
- OPPO/小米 使用 XMP 元数据定义动态照片格式、兼容 Google 规范,谷歌相册可识别为动态照片;
- 华为/荣耀 动态照片声明方式相同,发送到对方相册可直接查看动态效果;其余厂商系统相册仅支持自家动态照片查看。
OPPO ColorOS:
在 Google 的 Motion Photo Format 1.0 标准基础上增加了 OpCamera 相关字段。
封面带 HDR 效果:
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.1.0-jc003">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:hdrgm="http://ns.adobe.com/hdr-gain-map/1.0/"
xmlns:GCamera="http://ns.google.com/photos/1.0/camera/"
xmlns:OpCamera="http://ns.oplus.com/photos/1.0/camera/"
xmlns:Container="http://ns.google.com/photos/1.0/container/"
xmlns:Item="http://ns.google.com/photos/1.0/container/item/"
hdrgm:Version="1.0"
GCamera:MotionPhoto="1"
GCamera:MotionPhotoVersion="1"
GCamera:MotionPhotoPresentationTimestampUs="1699269"
OpCamera:MotionPhotoPrimaryPresentationTimestampUs="1699269"
OpCamera:MotionPhotoOwner="oplus"
OpCamera:OLivePhotoVersion="2"
OpCamera:VideoLength="5416935">
<Container:Directory>
<rdf:Seq>
<rdf:li rdf:parseType="Resource">
<Container:Item
Item:Mime="image/jpeg"
Item:Semantic="Primary"
Item:Length="0"
Item:Padding="0"/>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<Container:Item
Item:Mime="image/jpeg"
Item:Semantic="GainMap"
Item:Length="463255"
Item:Padding="0"/>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<Container:Item
Item:Mime="video/mp4"
Item:Semantic="MotionPhoto"
Item:Length="5417125"/>
</rdf:li>
</rdf:Seq>
</Container:Directory>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>封面无 HDR 效果:
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.1.0-jc003">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:GCamera="http://ns.google.com/photos/1.0/camera/"
xmlns:OpCamera="http://ns.oplus.com/photos/1.0/camera/"
xmlns:Container="http://ns.google.com/photos/1.0/container/"
xmlns:Item="http://ns.google.com/photos/1.0/container/item/"
GCamera:MotionPhoto="1"
GCamera:MotionPhotoVersion="1"
GCamera:MotionPhotoPresentationTimestampUs="1433147"
OpCamera:MotionPhotoPrimaryPresentationTimestampUs="1433147"
OpCamera:MotionPhotoOwner="oplus"
OpCamera:OLivePhotoVersion="2"
OpCamera:VideoLength="13016208">
<Container:Directory>
<rdf:Seq>
<rdf:li rdf:parseType="Resource">
<Container:Item
Item:Mime="image/jpeg"
Item:Semantic="Primary"/>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<Container:Item
Item:Mime="video/mp4"
Item:Semantic="MotionPhoto"
Item:Length="13016398"/>
</rdf:li>
</rdf:Seq>
</Container:Directory>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>小米 HyperOS:
使用 Google 旧版 MicroVideo 标准,在 Motion Photo Format 文档中描述如下:
这些属性是微视频 V1 规范的一部分。它们已从此规范中删除,如果存在,必须忽略。 具体而言,MicroVideoOffset 属性已替换为 GContainer:ItemLength 值,用于在文件中定位视频数据。
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.1.0-jc003">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:GCamera="http://ns.google.com/photos/1.0/camera/"
xmlns:MiCamera="http://ns.xiaomi.com/photos/1.0/camera/"
GCamera:MicroVideoVersion="1"
GCamera:MicroVideo="1"
GCamera:MicroVideoOffset="6914271"
GCamera:MicroVideoPresentationTimestampUs="898953"
MiCamera:XMPMeta="<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>"/>
</rdf:RDF>
</x:xmpmeta>华为 HarmonyOS 4.2 & 荣耀 MaigicOS:
文件末尾有如下标识:
v2_f35 409:1000 LIVE_1915884vivo OriginOS:
文件末尾有如下标识。视频文件是与 jpg 前缀相同的 mp4 文件,放置在同一目录。
vivo{"com.android.camera.joint.fullview.orientation":0,"com.android.camera.hdr":-1,"com.android.camera.fisheye":-1,"com.android.camera.takenmodel":"iQOO 7","com.android.camera.camerafacing":"0","com.android.camera.document":-1,"com.android.camera.joint.conshoot":0,"com.android.camera.joint.motioncapture":0,"com.android.camera.livephoto":"17333666606734cc103000000000","version":2012,"com.android.camera.joint.fullview":false}
cameralbum!
/17333666606734cc103000000000