国内厂商动态照片/实况照片格式对比

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="&lt;?xml version='1.0' encoding='UTF-8' standalone='yes' ?&gt;"/>
  </rdf:RDF>
</x:xmpmeta>

华为 HarmonyOS 4.2 & 荣耀 MaigicOS:

文件末尾有如下标识:

v2_f35              409:1000            LIVE_1915884

vivo 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
0%