# Video thumbnails — server-side ffmpeg (Option B)
Video thumbnails are now generated **server-side on upload**: a lifecycle hook
streams the (decrypted) blob to a temp file, `ffmpeg` extracts one representative
frame, and that frame goes through the **same WebP pipeline as photos** — so
video thumbnails are WebP, blob-hash keyed (dedup'd), and content-negotiated,
exactly like images.
This replaces the old browser path, which only generated a thumbnail when the
Photos grid first rendered a video tile, the `
` 404'd, and the browser
**re-downloaded the video** to seek a frame and PUT 3 JPEGs back.
## What it buys
1. **Coverage incl. HEVC/iPhone.** The browser `