Reviewing a cut with no computer
Open a rendered video or still from Photos or Files and review it on the phone with the same overlays, zoom, frame-stepping and frame grab as a live stream.
You do not need a computer, a plugin, or a network to use most of this app. Preview from Photos or Files opens a rendered cut — or a single still — straight from the phone and gives it the same instrument as a live stream: the platform layout overlays, the safe zone, pinch zoom, frame-by-frame stepping, and the frame grab.
This is the mode for reviewing an export on the train, checking a client's cut that arrived over AirDrop, or laying a TikTok frame over a still to see where the caption lands — with no desktop running at all.
Opening a local video or photo is never subscription-gated. It works identically on the free tier.
Open a clip
From the home screen, tap Preview from Photos or Files. It offers two sources.

The subtitle says it plainly: open a local video or photo, no Mac or PC needed.
Photo Library opens the system photo picker. It runs out of process, so picking a clip needs no photo-library permission — the app never sees your library, only the one asset you hand it.
Files opens the document picker, filtered to video and image types. The file is copied into the app's own temporary storage before playing, so the original is untouched and a security-scoped source (iCloud Drive, an external drive, another app's container) is read once and released.
The clip opens full screen in the monitor. Video gets a transport bar; a still image does not, since there is nothing to transport.
What you get
The clip monitor is the streaming HUD pointed at a different source, and it shares its settings with the live view — a preference set in one holds in the other.
| Control | Where | Notes |
|---|---|---|
| Layout overlays | Grid button | The full picker: Standard, Full Screen, Universal Safe Zone, TikTok, Reels, Shorts |
| Caption and profile editor | Bottom of the layout picker | Same shared caption, photo and engagement counts as the live view |
| Save frame | Download button | Composites the current frame with the active layout |
| Pinch zoom | Gesture | Double-tap zooms to 2.5×, double-tap again returns to fit |
| Controls mode and hide delay | Gear | Stay on or Auto-hide, 2–15 seconds |
| Max zoom | Gear | Slider across the whole 2×–30× scale |
There is no stats HUD and no encoder settings here, because there is no encoder and no network — you are looking at the file, decoded by the phone.
The layout picker and the max-zoom slider obey the same tier rules they do in the live view, because they are literally the same settings. On the free tier the TikTok and Reels layouts are locked, zoom stops at 4×, and the safe zone stays red at 30%. The mode itself is not gated; the controls inside it are the ones you already have.
Transport and frame-stepping
A video gets a scrub slider plus five buttons: go to start, step back one frame, play/pause, step forward one frame, go to end.

Stepping moves one encoded frame at a time and pauses first, so the position is exact rather than approximate.
Frame stepping is a genuine single-frame hop, not a small time seek. It pauses playback first — stepping requires a stopped item — and re-reads the clock afterward so the slider tracks.
Scrubbing is two-stage on purpose. While your finger is down the seek runs at coarse tolerance so the thumb tracks smoothly instead of queueing a storm of exact seeks; when you let go it lands on the exact frame. So the picture you judge at the end of a drag is the real frame, even though the frames flying past mid-drag were approximate.
Go-to-start and go-to-end are exact seeks in both directions. Playback stops at the end of the clip rather than looping; pressing play while parked at the end restarts from the top.
Grabbing stills
The download button saves the current frame to Photos with any active layout composited in, exactly as it does on a live stream.
Two differences from a stream grab, both in your favor:
- The frame comes from a frame-accurate, correctly-oriented snapshot of the file at the current playhead — rotation metadata is handled, so a clip shot in portrait comes out portrait.
- Nothing has been through the network encoder. Under Standard you get the decoded source frame at its own resolution.
Under any other layout you still get a screen-sized composite, because the layout geometry is defined in screen space. That is the right output for showing someone where the caption lands, and the wrong output for anything that needs source pixels.
The iCloud path, and how it fails
If your library is on Optimize iPhone Storage, a clip you pick may not physically be on the device. The out-of-process picker cannot download it, so the app falls back through three loaders before giving up:
A direct file load. Works for anything already on the device.
A raw data load. Recovers most clips the first loader refuses — HEVC, slow-motion, and anything that needs transcoding.
A PhotoKit fetch with network access enabled, which is the only path that will actually pull the original down from iCloud. It copies the stored original bytes directly rather than going through the export pipeline, because the export pipeline fails on exactly these assets.
The third step is the one that needs permission. This is the only situation in which PreviewMonitor asks for read access to your photo library, and it asks at that moment, not at launch — a clip that is already on the device never triggers the prompt. Deny it and you get: Photo access is needed to load iCloud clips. Enable it in Settings.
Failures you may actually hit:
| What you see | What it means |
|---|---|
| Couldn't download this iCloud clip. Your iPhone may be low on storage, so free up some space and try again. | iCloud could not deliver the original. In practice this is almost always no room on the device to land the file. |
| Couldn't find that clip in your library. | The asset identifier no longer resolves — the clip was deleted or moved after you picked it. |
| That clip has no video data. | The asset carries no video resource. |
| Couldn't open that file | A Files import that could not be read or copied. |
The reliable fix for the storage case is the obvious one: open the clip in Photos first and let it download, or free space and retry.
Practical notes
- The screen can sleep here. PreviewMonitor holds the screen awake only while it is actively streaming from a host. In the clip monitor, normal auto-lock applies — set the phone's Auto-Lock to Never if you are going to leave a paused frame up and study it.
- Audio plays through the standard playback route. The clip monitor takes the audio session for playback while a video is open and releases it when you close the clip.
- Portrait only for layouts. Rotating to landscape drops the layout overlay and hides the layout button, the same as the live view. The overlay artwork is portrait-authored.
- Auto-hide only runs while something is happening. In Auto-hide mode the controls fade after the delay while a video is playing; parked on a paused frame they stay up, so studying a still never leaves you tapping to bring the transport back. A single image counts as playing.
Related
- Preview from Photos or Files — the reference page for this mode
- Layouts — every overlay and its controls
- Save frame — how the composite is built
- Privacy and data — what permissions the app asks for and when
Last updated on
Deploying on multiple machines
Ports, firewall rules, silent install, discovery, pairing storage and unsigned binaries — the facts for rolling PreviewMonitor out on a managed network.
Home screen
The list of computers PreviewMonitor can see, what each row state means, and the shortcuts to the setup wizard, QR scanner, and offline preview.