Drop a Live Photo package.
safe · secure · no server · works offline · fast
…or paste a file you copied in Finder, or just start typing at the cursor.
↓ scroll for about & FAQsafe · secure · no server · works offline · fast
…or paste a file you copied in Finder, or just start typing at the cursor.
↓ scroll for about & FAQ.pvt is a folder, not a file
When an iPhone hands over a Live Photo, what you get is a
video-complement package: a directory carrying the macOS
bundle bit, which is why Finder shows it as a single item. Inside are
three things — the still frame as a .HEIC, the
roughly three seconds of motion as a .MOV (HEVC in a
QuickTime container), and a 256-byte metadata.plist whose
only key is PFVideoComplementMetadataVersionKey
(“PF” is PhotoFoundation). If you just want to know what the
extension is, start with
what is a .pvt file,
which opens one up and shows the real bytes of every member in a hex
viewer. Drop the package on OmniViewer and
it opens as what it is: a set of members, listed with their roles, not a
mystery blob. Every other file viewer either refuses the folder or makes
you dig the two halves out by hand.
The LIVE tab puts the still on the stage and plays the motion while you hold the pointer down — or hold Space — cross-fading back to the still when you let go. That is exactly the gesture the Photos app uses, and it works here on the raw package with nothing installed. HEIC only renders natively in Safari, so where a browser refuses the still OmniViewer falls back to the motion track’s own first frame — the same moment — and says so rather than showing you an empty box.
This is the part that matters, and it is why /pvt exists
rather than pointing you at
/heic and
/mp4 separately. The capture
coordinate is written into both members, in two
structures that have nothing to do with each other: the still’s
EXIF GPS IFD, and the motion’s
com.apple.quicktime.location.ISO6709 atom.
Every “remove EXIF online” tool touches the first and leaves
the second sitting in the movie file. The METADATA tab
opens with a banner naming every copy it found, which member it
came from and which structure held it. Read
how a Live Photo stores your location twice
for the byte-level walk-through.
Nothing is ever read whole. The still’s EXIF comes out of the
meta box at the front of the HEIC; the motion’s
metadata lives in moov, which QuickTime is free to write at
the end — and iOS does — so OmniViewer walks the
top-level box headers and seeks straight to it instead of scanning.
Playback is an object URL the browser streams off disk. A package holding
a twenty-gigabyte take therefore opens on the same handful of small reads
as a three-second one. Powered by the same engine as
fastjsonviewer.com and
hugecsv.com; OmniViewer opens
every file format.
No. OmniViewer is a static page with no server-side processing. The package is read directly by your browser using the file-system entries API, and every member stays on your computer. The location shown in the METADATA tab is read out of your own file and is never looked up against any map or geocoding service.
It is not a file — it is a directory. Apple calls it a video-complement package: a folder carrying the macOS bundle bit so Finder presents it as one item. Inside are the Live Photo’s still frame (a .HEIC), its motion track (a .MOV holding HEVC in a QuickTime container) and a small metadata.plist that stamps the pairing version, PFVideoComplementMetadataVersionKey. There is a full walk-through, with the bytes of each member shown in a hex viewer, at /s/pvt/what-is-a-pvt-file-apple-live-photo-packages.html.
Drag the package onto the page and OmniViewer reads it as a directory through the entries API, or use the "open a package" picker. You can also open a zipped copy of the package: a .pvt.zip is expanded in the browser and treated exactly the same way, which is handy because a folder cannot be attached or shared as a single file.
Because a Live Photo stores the coordinate twice, in two unrelated places. The still keeps it in the EXIF GPS IFD. The motion keeps it in QuickTime metadata, usually under the key com.apple.quicktime.location.ISO6709. EXIF strippers only understand the first, so the movie half of the Live Photo still says exactly where the photo was taken. OmniViewer’s METADATA tab lists every copy it finds so you know what is actually left.
Yes. The LIVE tab shows the still and plays the motion on press-and-hold — pointer or Space — releasing back to the still, which is the gesture the Photos app uses. It plays the motion member directly through a video element, so nothing is transcoded and nothing is downloaded.
The still is a HEIC, and only Safari renders HEIC in an image element; Chrome and Firefox will not, because decoding HEVC needs a licensed decoder. When that happens OmniViewer shows the motion track’s first frame instead — the same moment — and tells you so. The MEMBERS tab can hand the still to the /heic toolkit, which decodes it properly via WebCodecs or a wasm fallback.
Yes. The EXPORT tab downloads any member byte-for-byte, with no re-encoding, so the still keeps its HEVC coding and the motion keeps its original track layout. It can also re-bundle the whole package as a .pvt.zip, with members stored uncompressed — a directory cannot be downloaded from a web page, so a zip is how a package leaves the browser intact.
Effectively unlimited. Members are read as disk-backed file handles and never buffered: the still’s EXIF is read from the meta box at the front of the HEIC, and the motion’s metadata from its moov index — which iOS writes at the end of the file, so OmniViewer seeks to it rather than scanning. A package whose motion is a twenty-gigabyte take costs the same handful of small reads as a three-second one.