Skip to content

Hybrid Photo/Video Formats

Apple iPhone and iPad

iOS Live Photos consist of a JPEG/HEIC image and a QuickTime AVC/HEVC video, which are both required for viewing.

We recommend using an app like PhotoSync to upload Live Photos to PhotoPrism, since the iOS web upload usually only submits the HEIC image file without the video.

Android Devices

Some Samsung and Google Android devices support taking "Motion Photos" with the included Camera app. Motion Photos are JPEG/HEIC image with a short MP4 video embedded after the image data.

The image part of these files can be opened in any image viewer that supports JPEG/HEIC, but the video part cannot. However, since the MP4 video is simply appended at the end of the image file, it can be easily read by our software and streamed through the API as needed.

Introductory Tutorials

Title Date URL
How to detect Android motion photos in Flutter May 2023
Stripping Embedded MP4s out of Android 12 Motion Photos Oct 2021
Google Pixel "Motion Photo" Howto Mar 2021
go-mp4: Golang Library and CLI Tool for MP4 Jul 2020
Working with Motion Photos Jan 2019
Google: Behind the Motion Photos Technology in Pixel 2 Mar 2018

Software Libraries and References

Title URL
Web Video Codec Guide
Media Container Formats
MP4 Signature Format
List of file signatures (Wikipedia)
Go library for reading and writing MP4 files abema/go-mp4
Go library for buffered I/O with io.Seeker interface sunfish-shogi/bufseekio
How to use the io.Reader interface
AV1 Codec ISO Media File Format
  • #439 (Samsung: Initial support for Motion Photos)
  • #1739 (Google: Initial support for Motion Photos)
  • #2788 (Metadata: Flag Samsung/Google Motion Photos as Live Photos)
  • cliveontoast/GoMoPho#23 (Google Motion Photos Video Extractor: Add Android 12 Support)
  • #3709 (Google: Initial support for Motion Photos)
  • #3722 (Google: Add support for Motion Photos)
  • #3660 (Samsung: Improved support for Motion Photos)