✳ OMNIVIEWER

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.

Or try it now

↓ scroll for about & FAQ

Preview

Drop a CSV file, or use the file picker.

A .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.

Press and hold, and it plays

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.

A Live Photo records where you were twice

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.

Built for a package whose motion is enormous

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.

FAQ

Is my Live Photo uploaded anywhere?

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.

What is a .pvt file?

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.

How do I open a .pvt package in a browser?

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.

Why does removing EXIF not remove the location from a Live Photo?

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.

Can I play a Live Photo in the browser?

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.

Why can I not always see the still frame?

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.

Can I get the photo and the video out separately?

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.

How large a package can I open?

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.