ESP-Live-Photo 组件

[English]

普通照片便于浏览和分享,但只能记录某一个瞬间。视频可以保留动作过程,但作为快速快照又不够方便。Live Photo(实况图片)和 Motion Photo 格式结合了两者的优点:用户首先看到一张 JPEG 照片,而兼容的图库应用可以在同一个文件中播放一段简短的动态片段。

ESP-Live-Photo 让乐鑫设备可以直接在设备端创建和解析这种混合媒体格式。它将一张高质量 JPEG 封面图和一段嵌入式 MP4 视频片段组合在一起,视频片段还可以包含音频。因此,智能摄像头、门铃等产品无需通过 PC 或云端后处理,就能保存带有动态上下文的快照。

什么是 ESP-Live-Photo

ESP-Live-Photo 是乐鑫提供的组件,用于在嵌入式设备上生成和读取 Live Photo(实况图片)/ Motion Photo 文件。它生成的是一个看起来像普通 JPEG 图片的单文件,同时在其中携带一段简短的 MP4 片段,为用户提供动态上下文。

对产品用户来说,它的价值很直观:

  • 像浏览照片一样快速查看捕获内容。

  • 保留关键瞬间前后的一小段动作。

  • 只需分享或存储一个文件,而不必分别管理照片和视频。

  • 直接在设备端生成适合智能手机查看的实况图片。

Live Photo(实况图片)演示

下面的演示使用与 Web 图库类似的 LivePhotosKit 标记:先显示 JPEG 封面图,在触发实况图片交互时播放对应的 MOV 片段。在桌面端,将鼠标悬停在 LIVE 标识上即可播放;在移动端,长按图片即可播放。

为什么需要它

许多物联网摄像头和智能设备会基于事件捕获媒体内容:访客到来、宠物移动、检测到物体,或用户按下快门。静态图片便于查看,但可能错过瞬间前后发生的事情。短视频包含上下文,但浏览起来更慢。

ESP-Live-Photo 可以为产品带来更有吸引力的捕获体验:图库仍然以照片浏览为主,而当用户需要更多上下文时,也可以播放动态片段。

典型使用场景

智能门铃

门铃可以保存清晰的访客快照,并包含事件前后的一小段视频。用户可以先快速浏览图片,再播放动态内容来查看访客动作。

电池摄像头

电池供电摄像头通常需要紧凑且有意义的记录。Motion Photo 可以先展示关键帧,并将有用的动态片段保存在同一个文件中。

AI 摄像头

AI 摄像头可以将检测结果和解释事件的短片段配对。例如,包裹、人员、宠物或车辆都可以以照片形式展示,并附带动态证据。

陪伴和监控设备

宠物喂食器、婴儿监视器和陪伴设备可以创建比静态图片更生动、又比视频列表更容易浏览的捕获内容。

巡检和现场设备

现场设备可以保存一张便于报告使用的照片,并在同一文件内保留一段简短的动态记录,方便后续复查。

简单架构

ESP-Live-Photo 使用 ESP-Muxer 组件 创建文件,并使用 ESP-Extractor 组件 读取文件。产品只需要提供一张 JPEG 封面图和一段简短的 MP4 片段;组件会处理实况图片文件布局和元数据。

创建流程:

JPEG 封面图
      |
      |        简短 MP4 片段
      |        视频 + 可选音频
      |              |
      v              v
+-----------------------------+
| ESP-Live-Photo + ESP-Muxer  |
| 合成图片和动态内容          |
| 添加 Motion Photo 元数据    |
+-----------------------------+
              |
              v
    Live Photo(实况图片)/ Motion Photo 文件

读取流程:

Live Photo(实况图片)/ Motion Photo 文件
          |
          v
+--------------------------------+
| ESP-Live-Photo + ESP-Extractor |
| 查找封面图和 MP4 片段         |
+--------------------------------+
         |                |
         v                v
    JPEG 封面图       MP4 动态片段
    用于预览          用于播放 / 上传

设计建议

  • 选择有代表性的封面: 静态图片是用户最先看到的内容,因此应清晰体现事件本身。

  • 保持片段简短: 实况图片最适合用于提供动态上下文,而不是保存长视频。

  • 围绕关键瞬间捕获: 对于事件触发型产品,建议尽可能包含触发前后的一小段时间。

  • 使用详细的模块文档完成集成: 配置和兼容性细节会在组件文档中维护。

后续阅读