HOW
LENS WORKS
LENS combines your GPS activity with your video — from any supported camera — to automatically generate a synced cinematic edit, entirely in your browser. Available on desktop and mobile.
Desktop vs Mobile
LENS runs on both desktop and mobile — each with a pipeline optimised for the platform. The output quality is equivalent; the main difference is audio and hardware requirements.
Desktop
Chrome · Edge · Firefox
- ✅Full pipeline — all camera types
- ✅Audio: original video + cinematic music
- ✅Up to 60s highlight reel
- ✅MP4 download to computer
- ✅No minimum hardware
Best for: GoPro videos, long activities, maximum quality.
Mobile
iOS Safari · Android Chrome
- ✅iPhone + Android (1080p limit)
- ✅GoPro videos (1080p H.264 / LRV)
- ✅Audio: Cinematic intro & brand exit sounds (Tone.js)
- ✅Up to 30s highlight reel
- ✅Saves to Photos / Gallery
Best for: quick edits on the go from your phone.
🔊 Audio support: Mobile video exports now include the cinematic soundtrack (intro/brand exit thuds and swells) rendered entirely on-device via Tone.js.
Device requirements
LENS uses WebCodecs — a modern browser API for hardware-accelerated video encoding. Older devices do not have this capability. Below are the minimum requirements for a reliable experience.
iOS (Safari)
All browsers on iOS use WebKit — browser choice doesn't matter
Recommended (premium)
iOS 17.0+ · iPhone 11 or newer (A13 chip, 2019)
Minimum (may work)
iOS 16.4+ · iPhone XR / XS (A12, 2018)
Not supported
iOS 16.3 or older · iPhone 8/X or older
Why iPhone 11 / iOS 17? The A13 chip (iPhone 11, 2019) introduced dedicated hardware encoder and decoder pipelines that don't interfere with each other. Older chips may show encoding errors when decoding and encoding video simultaneously. iOS 17 also improves Video Toolbox memory management.
Max video format & file size on mobile
Below minimum or file too large? Open lens.prorefuel.app on your desktop computer (Chrome) — no device or size restrictions.
iOS 18+ (future): Full audio support — your video's original sound included in the export.
Android (Chrome)
Chrome auto-updates — browser version is usually not a concern
Recommended (premium)
Android 11+ · Chrome 114+ · 4 GB+ RAM
Minimum (may work)
Android 10 · Chrome 94+ · 3 GB RAM
Not supported
Android 9 or older · Chrome 93 or older
Why 4 GB RAM / Android 11? The video decoder buffers 3–5 frames at a time (not the full file), so file size ≠ RAM usage. The 4 GB requirement ensures headroom for concurrent H264 encoding + video decoding without OOM crashes. Android 11 improves media codec resource management.
Max video format & file size on mobile
Below minimum or file too large? Open lens.prorefuel.app on your desktop computer (Chrome) — no device or size restrictions.
Android audio (coming soon): Android Chrome 94+ already supports AudioEncoder. Audio export is being rolled out.
Video file size reference
File size ≠ memory usage. LENS streams video on-demand, decoding only 3–5 frames at a time regardless of file size. The limits exist to protect older devices with less capable blob URL handling.
| Platform | Max size | Max resolution |
|---|---|---|
| 🖥️ Desktop (Chrome / Edge / Firefox) | No limit | No limit (up to 4K) |
| 📱 iOS 17+ / iPhone 11+ | 2 GB | Up to 4K (30fps render) |
| 📱 Android 11+ / 4 GB RAM | 1.5 GB | Up to 4K (30fps render) |
| 📱 iOS 16.4–16.x / iPhone XR/XS | 500 MB | 1080p recommended |
| 📱 Android 10 / 3 GB RAM | 1 GB | 1080p recommended |
Typical file sizes & mobile compatibility
iPhone 13 · 1080p60
~120 MB/min · Natively supported (~16 min max)
iPhone 15 · 4K30 HEVC
~600 MB/min · Natively supported (optimized 30fps canvas rendering)
GoPro Hero 12 · 4K30
~400 MB/min · Supports H.264 4K or lightweight .lrv files
Samsung S24 · 4K30
~300 MB/min · Natively supported (H.264 or local HEVC transcoder)
Mobile browsers have tight RAM constraints. LENS optimizes memory usage by driving drawing loops at exactly 30fps and freeing GPU buffers immediately.
💡 Tip: You don't need to import your entire ride. Select a 2–10 minute segment that covers your best moments. LENS will detect and highlight the most intense scenes from that window.
How it works in 3 steps
Import your GPS activity
Option A — Connect directly to Strava:
Click Import from Strava, authorise once, and LENS shows your 10 most recent activities. Pick one and LENS extracts the full GPS route, elevation, HR, cadence and power automatically — no file download needed.
On mobile, the authorization opens the Strava app directly if installed.
Option B — Upload a GPX file manually:
Export your activity as a .gpx file from any GPS app or device and drop it into LENS.
Garmin
Garmin Connect → Activity → Export to GPX
Strava
Activity page → ••• → Export GPX (or use direct import above)
Suunto
Export the *-track.gpx file (not the -route.gpx)
Also works with Wahoo, Polar, Coros, Komoot and any app that exports standard .gpx files.
Import your video
GoPro
GPS + accelerometer embedded in MP4 at 18 Hz — richest data, automatic precise sync
iPhone
No GPS track in video — synced via CreateDate timestamp (UTC) matched to your activity
Android
Same as iPhone — Samsung Galaxy, Google Pixel, and any Android phone
Generate the cinematic edit
Output format:
Supported video cameras
Each camera type uses a different sync strategy. GoPro is the gold standard — GPS is embedded in the video at high frequency. iPhone and Android rely on the creation timestamp instead.
- Formats.mp4, .lrv
- Required codecH.264 — HEVC/H.265 not supported on Windows Chrome or mobile
- GPS track18 Hz embedded in video
- Accelerometer200 Hz
- GyroscopeYes
- BarometerYes
- Sync methodGPS satellite clock — millisecond precision
- Audio in output (desktop)Original video audio + cinematic music
- Audio in output (mobile)Coming soon — currently silent
- → On the camera: Preferences → Video → Codec → H.264 and record in 1080p.
- → GoPro Quik App: Export or share your video as 1080p (this automatically encodes to H.264).
- → Use GoPro .lrv (Low Resolution Video) files directly from the SD card.
- → Open LENS on desktop Safari / Chrome on macOS to play original HEVC natively.
Compatible models: Hero 5 Black, Hero 7–13, Hero 12 Black, GoPro Max. Enable GPS in Settings → Preferences → GPS → On and wait for the solid satellite icon before recording.
Important: Your GoPro clip must be at least 60 seconds long to allow GPS lock. A short clip may have no valid GPS data.
⚠ GoPro H.265 (HEVC) & 4K limits: Chrome on Windows/Linux cannot play H.265, and GoPro HEVC files are blocked on mobile devices to prevent browser memory crashes (OOM).
Do not re-encode or edit before importing
GoPro GPS data lives in a proprietary metadata track (GPMF) inside the original .mp4. Any re-encoding — exporting from CapCut, iMovie, the GoPro Quik app, or any video editor — permanently destroys this track. The resulting file looks like a normal video but contains zero GPS data. Always import the original file directly from the SD card or camera roll.
- Formats.mov
- GPS track in videoNot embedded
- Sync methodCreateDate timestamp matched to GPX
- Max resolution (mobile)1080p (4K must be downscaled)
- Minimum deviceiPhone 11+ (recommended) · iPhone XR/XS (minimum)
- Minimum iOSiOS 17.0+ (recommended) · iOS 16.4 (minimum)
- Audio in output (desktop)Original video audio + cinematic music
- Audio in output (mobile)iOS 18+: planned · iOS 16-17: silent
iPhones do not embed a continuous GPS track in the video. LENS reads the recording start time from the video metadata and aligns it with your GPS activity. Your iPhone's clock must be set to automatic (Settings → General → Date & Time → Set Automatically).
Important: Start your GPS tracker (Garmin, Strava, etc.) before pressing record on your iPhone. The activity GPX must cover the time window of the video.
💡 Tip for 4K iPhone Videos: To prevent memory crashes, tap Options at the bottom of the iOS photos picker and choose Most Compatible when selecting your video. iOS will automatically transcode and downscale the file to 1080p H.264.
- Formats.mp4
- GPS track in videoNot embedded
- Sync methodRecording timestamp from video metadata
- Max resolution (mobile)1080p (4K must be recorded/exported in 1080p)
- Minimum AndroidAndroid 11+ (recommended) · Android 10 (minimum)
- Minimum RAM4 GB+ (recommended) · 3 GB (minimum)
- BrowserChrome 94+ required (Chromium-based: Edge, Brave also work)
- Required codecH.264 (HEVC/H.265 not supported in Chrome on Windows)
- Audio in output (desktop)Original video audio + cinematic music
- Audio in output (mobile)Chrome 94+: coming soon · currently silent
- → Camera app → Settings → Video quality
- → Disable “Efficient video format” — this forces H.264
- → Record a new clip and use that file in LENS
Android phones record the end time of the video in the file metadata. LENS calculates the start time automatically (end time − duration). Keep your phone's clock synced to automatic time.
Saves to Gallery: On Android, the video downloads to your Downloads folder. Your Gallery app automatically detects new videos there within seconds.
⚠ Google Pixel — H.265 (HEVC) recording: Pixel phones record in HEVC by default in several modes (4K, Top Shot, Night Sight). Chrome on Windows/Linux cannot play H.265 files. To fix:
Alternative: convert the existing video to H.264 with HandBrake (free, cross-platform).
- Formats.mp4 (Android) · .mov (iOS)
- GPS in videoNot available — stripped by WhatsApp
- Sync methodNone — GPX is the sole data source
- Map in outputFull activity route (static, no real-time cursor)
- Stats in outputDistance · Time · Speed · Elevation · HR
WhatsApp strips all GPS and timestamp data from videos before sending, for privacy reasons. LENS detects this automatically and switches to Activity Portrait mode — the GPX file provides all the data, and the WhatsApp video plays as the background footage. The output shows your full route on the map, and activity stats animate progressively during the clip.
Both .mp4 (received on Android or desktop) and .mov (saved from WhatsApp on iOS) are supported.
Content rights:When importing a video received via WhatsApp, you confirm that you have the right to use it (personal footage, with the creator’s permission, or content you own). LENS processes everything locally — your video is never uploaded to any server.
GPS trackers & apps
Your GPS device records the activity. LENS needs it exported as a .gpx file.
Works with all Garmin devices: Edge, Fenix, Forerunner, Venu, Epix, and more.
- →Open Garmin Connect → Activities
- →Select the activity recorded during your video
- →⚙ gear icon → Export to GPX
Works with any activity synced to Strava, regardless of the recording device.
Recommended — Direct import
- →Click Import from Strava in LENS
- →Authorise once — no login needed if the app is installed
- →Pick any of your last 10 activities — done
Or export manually
- →Open the activity on Strava (web or app)
- →Click the ··· menu (three dots)
- →Export GPX
Suunto exports two separate GPX files — you need the track file, not the route file.
- →Open Suunto app → select the activity
- →Export / Share → GPX
- →Use the file named
*-track.gpx
Important
Do not use the *-route.gpx file — it has no timestamps.
Also supported
Wahoo (Activity → Share → GPX), Polar Flow, Coros, Komoot (Tour → Download GPX), and any app that exports standard .gpx files.
How the sync engine works
GoPro: GPS satellite clock. The GoPro and your Garmin/Wahoo both reference the same GPS satellite clock. LENS matches them directly — no correction needed, millisecond precision.
iPhone / Android: timestamp alignment. LENS reads the recording start time from the video metadata (UTC) and finds the matching window in your GPX activity. Your device clock must be set to automatic time.
Scene detection. LENS analyzes speed, elevation, gradient, heart rate, cadence, and power from the GPX — plus GoPro accelerometer/gyroscope when available — to identify the most intense moments.
Cinematic output, 9:16 format. Each detected scene maps to a specific video position. LENS cuts between scenes, overlays telemetry data, and composes the final video — entirely in your browser.
Enabling GPS on GoPro
GoPro needs GPS enabled and a satellite lock before recording starts.
Enable GPS in settings
Settings (wrench) → Preferences → GPS → On. On Hero 10+, GPS is always on when location is enabled via Quik pairing.
Power on outdoors with clear sky
Keep the GPS antenna (top edge of camera) unobstructed. Power on outside — indoors or in a bag it will never lock.
Wait for the solid GPS icon
A blinking icon means searching. A solid icon means lock acquired (10–30 seconds outdoors). Start recording only after lock, and record for at least 60 seconds.
Model notes
Hero 5 / 6: GPS off by default. Enable manually each session.
Hero 7 / 8 / 9: Setting persists. Check once and leave on.
Hero 10 / 11 / 12 / 13: Best GPS chip — faster lock, 18 Hz in all modes.
GoPro Max: GPS included. Same setup as Hero 7+.
Common issues
⚠ No GPS in this GoPro video
GPS was not enabled, never acquired a lock, or the video was re-encoded before importing. Always use the original, unedited .mp4 directly from the GoPro SD card — exporting through CapCut, iMovie, or the GoPro Quik app permanently erases GPS metadata. Enable GPS in Settings → Preferences → GPS → On, power on outdoors, wait for the solid satellite icon, then record for at least 60 seconds.
⚠ Video and GPX don't match
The video and GPX are from different days or sessions. Use the GPX from the same activity during which you recorded the video. Also check that your device clock is set to automatic time.
⚠ No scenes detected
The activity window covered by the video is too short or too flat. Try a longer video with varied terrain.
⚠ This is a Suunto route file
You uploaded the *-route.gpx — no timestamps. Upload the *-track.gpx file instead.
⚠ This GoPro video cannot be played in this browser
The video was recorded in H.265 (HEVC). Chrome on Windows/Linux cannot play H.265 files, and GoPro HEVC files are blocked on mobile due to memory constraints. Fix: On the camera, set Preferences → Video → Codec → H.264, export in 1080p from the GoPro Quik app, or use GoPro .lrv files. Alternatively, open LENS on Safari or Chrome on Mac — HEVC plays natively there.
⚠ Out of memory / Render crash on mobile
4K video encoding and decoding are supported on modern high-end devices. However, if your browser crashes during rendering, your device might be running out of memory. If this happens, select a 1080p video, export in 1080p, or on iOS, choose "Most Compatible" in the media picker options to auto-downscale the file.
⚠ Update required (mobile)
Your device doesn't meet the minimum requirements for the mobile pipeline. Open LENS on a desktop computer (Chrome recommended) for the full experience without restrictions.
Help & troubleshooting
Detailed explanations for every error message.
Wrong video format
Unsupported format. Use GoPro .mp4, iPhone .mov, or Android .mp4.
▼
Wrong video format
Unsupported format. Use GoPro .mp4, iPhone .mov, or Android .mp4.
.mp4 from GoPro and Android, and .mov from iPhone. Do not re-encode — telemetry data is lost in conversion.No GPS in GoPro video
No GPS data found in this GoPro file.
▼
No GPS in GoPro video
No GPS data found in this GoPro file.
There are two causes for this error:
1 — Video was re-encoded or edited (most common)
Exporting through CapCut, iMovie, the GoPro Quik app, Adobe Premiere, or any video editor permanently destroys the GPMF metadata track that carries GPS. The file looks like a normal video but contains zero GPS data. Always import the original, unedited .mp4 directly from the SD card or camera roll.
2 — GPS was off or never locked
Enable GPS: Settings → Preferences → GPS → On. Power on outdoors with clear sky, wait until the GPS icon is solid (not blinking) — 10–30 seconds. Record for at least 60 seconds to accumulate valid GPS samples.
GPS signal too weak (GoPro)
GPS signal too weak — no valid fix was recorded.
▼
GPS signal too weak (GoPro)
GPS signal too weak — no valid fix was recorded.
GoPro — H.265 video (HEVC)
This GoPro video cannot be played in this browser.
▼
GoPro — H.265 video (HEVC)
This GoPro video cannot be played in this browser.
Fix / Workarounds:
- →On the camera: Preferences → Video → Codec → H.264 and re-record.
- →GoPro Quik App: Export or share your video as 1080p (this automatically encodes to H.264).
- →GoPro Files: Use the .lrv (Low Resolution Video) files directly from the SD card.
- →On desktop: Open LENS on Safari or Chrome on a Mac — HEVC plays natively there.
Pixel phone — H.265 video (HEVC)
H.265 (HEVC) video detected — not supported in Chrome on Windows.
▼
Pixel phone — H.265 video (HEVC)
H.265 (HEVC) video detected — not supported in Chrome on Windows.
.TS.mp4), 4K30+, Night Sight, and Motion Video. Chrome on Windows and Linux cannot play H.265 without an OS-level codec. Chrome on macOS supports it. On mobile devices, 4K resolutions are blocked.Fix on your Pixel:
- →Camera app → Settings → Video quality
- →Disable “Efficient video format” (the HEVC option)
- →Record/export in 1080p — LENS supports up to 1080p resolution on mobile.
Already recorded in HEVC? Convert to H.264 with HandBrake (free): File → Open Source → Presets → Fast 1080p30 → Start Encode.
Video and GPX from different sessions
This video and GPX file don't match.
▼
Video and GPX from different sessions
This video and GPX file don't match.
Date mismatch
Video (date) and GPX (date) appear to be from different days.
▼
Date mismatch
Video (date) and GPX (date) appear to be from different days.
Wrong Suunto file
This is a Suunto route file, not a recording.
▼
Wrong Suunto file
This is a Suunto route file, not a recording.
*-track.gpx file (recorded activity with timestamps), not *-route.gpx (planned route without timestamps).Empty or invalid GPX
No GPS track found in this file.
▼
Empty or invalid GPX
No GPS track found in this file.
No scenes found
No highlight scenes detected.
▼
No scenes found
No highlight scenes detected.
Export failed or out of memory
Export failed / Not enough memory.
▼
Export failed or out of memory
Export failed / Not enough memory.
Mobile encoding error
Encoding failed. Please try again. (mobile)
▼
Mobile encoding error
Encoding failed. Please try again. (mobile)
Rendering 4K videos on mobile
Troubleshooting 4K video rendering on mobile
▼
Rendering 4K videos on mobile
Troubleshooting 4K video rendering on mobile
How to prevent memory crashes on older/mid-range devices:
- →On iPhone: Tap Options at the bottom of the photos picker and select Most Compatible before importing to auto-downscale to 1080p H.264.
- →On GoPro: Export in 1080p from the GoPro Quik app, or record/copy the file as 1080p H.264.
- →On Android: Record or export in 1080p resolution for mobile editing.
WhatsApp video detected
WhatsApp video — using Activity Portrait mode
▼
WhatsApp video detected
WhatsApp video — using Activity Portrait mode
Ready to generate your edit?
GoPro · iPhone · Android · Desktop Chrome · Free