亲们 有办法合成 oppo 实况照片并且在 oppo 相册能够被识别成动态照片吗? 我按照网上的教程添加 xmp 在小米上是没问题的 https://github.com/l2015/MoLive 在 https://motion-live.js.org/上利用 oppo 的特征合成 oppo 实况照片无法在 oppo 相册里面识别成实况照片 只能显示成一个静态照片. 有研究过吗 各位
<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="0"
OpCamera:MotionPhotoPrimaryPresentationTimestampUs="0"
OpCamera:MotionPhotoOwner="oplus"
OpCamera:OLivePhotoVersion="2"
OpCamera:VideoLength="0">
<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="video/mp4"
Item:Semantic="MotionPhoto"
Item:Length="0"/>
</rdf:li>
</rdf:Seq>
</Container:Directory>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
1
badboy200600 OP 已解决
解决方案的关键: 我分析了 GitHub 上的 motion-live-photo 参考库,发现他们使用了一个非常简化的 Exif 段(只有 116 字节),其中包含一个关键标识:oplus_8388608 。 这个字符串是 OPPO 相册识别动态照片的"暗号"。之前我们尝试复制完整的 Exif 数据( 1362 字节),反而因为格式问题导致失败。 最终的文件结构: FFD8 (SOI) ↓ FFE1 + XMP (动态照片元数据) ↓ FFE1 + Exif (包含 oplus_8388608) ↓ JPEG 图像数据 ↓ FFD9 (EOI) ↓ MP4 视频数据 简单来说:少即是多,OPPO 相册只需要看到那个特定的标识字符串就能识别动态照片,不需要完整的相机信息。 |