EveryDashCam: Free Open Source Browser Dashcam Player with GPS Maps

EveryDashCam homepage in a browser showing the dashcam player with front and rear cameras side by side, speed chart, and route map

TL;DR: EveryDashCam is a free open source AGPL-3.0 browser app that plays dashcam recordings from more than 40 brands with synchronized multi-camera video, a speed-colored GPS route map, speed and G-force charts with harsh-braking event marks, one-click clip export with speed and map overlays, and manual plus AI-assisted plate and face blur. Drop the whole SD card folder onto the page, pick a trip, and save the part you need. Files are read and processed locally on your device, nothing is uploaded, and it installs as an offline PWA with a portable single-file HTML and Docker image for self-hosting.

Every dashcam owner knows the frustration. The camera records faithfully for months, then the one clip you actually need is buried across a dozen three-minute files, front and rear split apart, with no map, no speed readout, and a plate you shouldn’t share. The vendor app plays one brand only, the desktop viewer costs money or needs Windows, and the telemetry overlay tool wants a separate export pipeline.

EveryDashCam fixes that workflow in one browser tab. Open the whole card folder, get the whole trip on one timeline, see where you went and how fast, combine the cameras into one shareable file, burn in speed and map proof, cover the plates, and hand the result to insurance, police, or YouTube. No install, no account, no upload.

This guide covers what EveryDashCam is and where it came from, how the three-step workflow works, the player and trip system in detail, camera support and the honest GPS format coverage behind it, export and overlay and blur, privacy and offline architecture, the open source stack it is built on, self-hosting options, how it compares with the tools people use today, practical uses including amateur radio and EmComm driving, honest limits, and how to add your camera.

EveryDashCam homepage in a browser showing the dashcam player with front and rear cameras side by side, speed chart, and route map

What Is EveryDashCam?

EveryDashCam is a free open source in-browser player and editor for dashcam recordings that shows synchronized multi-camera video alongside a GPS route map and speed and G-force charts, and exports shareable clips with data overlays and privacy blur, all processed locally on your device with no upload.

It is developed by Alexander Kulikov as a static web app at everydashcam.app, with beta.everydashcam.app carrying upcoming changes. The source lives at everydashcam/everydashcam under AGPL-3.0-only, with about 80 stars, 7 forks, and more than 900 commits at the time of writing. It was previously called dashcamigo, and the October 2026 migration moved the project to the everydashcam.app domain with a notes migration path in Settings.

The core promise is simple: your recordings stay on your device. The app reads files directly from your SD card or drive through the browser file picker, parses the GPS out of the video containers in the tab, renders the map and charts locally, and writes finished clips straight back to your computer. The only routine network requests are map tiles from OpenFreeMap and a small version check. There’s no server-side video pipeline to pay for, which is why the tool can be free.

The Three Step Workflow: Card to Trip to Clip

The landing page teaches the whole flow in three steps, and it really is that short.

Step one is to connect the SD card with a card reader or adapter on your computer or phone. Step two is to drag the entire recording folder onto the page or click Open folder and select it. Keep the original filenames and subfolders because the app uses them to group recordings into trips. Step three is to choose a trip and use the shared timeline to seek through it and switch between cameras.

That folder-level open matters. Most players make you open files one by one. EveryDashCam reads the card tree, matches front with rear and cabin by filename and timestamp, stitches short clips into trips with one shared timeline, and drops you at the moment you want via the map or the chart. Hover over the route or the chart to jump to that moment instead of scrubbing blindly.

After the first visit you can install it from the browser as a PWA. Installed copies keep working without a connection, which is exactly what you want on a laptop in a car park with no signal.

Player Tour: Trips, Map, Charts, and Events

The player packs a lot into one screen without feeling crowded. A trip list sits on the left with date, duration, distance, and size plus recording mode, notes, and favorites filters. The center holds the video with per-camera switching and fullscreen that can stay above the controls. The right holds the route map, and the bottom holds the speed and G-force chart with a zoom control and a return-to-full-timeline button.

The map is the standout. The route is colored by speed so slow traffic and fast highway sections read at a glance, with trip endpoints marked, numbered markers for missing GPS positions, adjustable street and place name density, and a choice of map appearance and provider including Yandex where available. Raster maps stay north-up and flat, including in exports, and the app falls back to a backup tile source when the primary is unreachable. A November 2026 update added a map of all trips with location filtering, which turns a full card into a searchable drive history.

The chart is the second standout. Speed and G-force plot against the same timeline as the video, harsh braking is detected from the accelerometer data and marked on the chart, and clicking a mark jumps the video to that moment. Time-lapse exports and zoomed chart navigation got faster in recent releases, and missing speed readings are estimated from coordinates when the camera only recorded positions.

Notes deserve a mention because dashcam review is rarely one sitting. Trip names, notes, favorites, and markers can save to a notes file next to your recordings and reload automatically, take priority over browser storage when present, and prompt you on first change to pick browser storage or the notes file. Trip cards link directly to events, and map markers can use different vehicles, colors, and sizes.

Supported Cameras and the Honest GPS Coverage Log

EveryDashCam plays recordings from more than 40 brands directly in the browser. The headline names are 70mai, Viofo, BlackVue, GoPro, Garmin, Vantrue, Thinkware, Nextbase, REDTIGER, NAVITEL, Mio MiVue, Navman MiVue, FITCAMX, DDPAI, INNOVV, Rexing, Sony, HP, Transcend, iBOX, Neoline, iZEEKER, GKU, Vueroid, Botslab, XEGA, Escort, CARCAM, Beferich, DATAKAM, and comma.ai openpilot routes. The full camera list separates video and GPS support per brand so expectations stay realistic.

What earns trust here is the GPS format coverage document in the repo. Instead of claiming universal support, it logs every parser against real anonymized recordings: Novatek freeGPS Type-3 float DDmm on Viofo A119 family and Transcend DrivePro 550, Vantrue NMEA in freeGPS on the N2X and S1 Pro Max, embedded 70mai freeGPS on the A510 and A810 and M500, 70mai Pro GPS-box records and X800 CSV sidecars, GoPro GPMF GPS5 on HERO5 and HERO6 and MAX, Thinkware GPS in subtitles on the F200 PRO, BlackVue DR sidecars with big-endian G scaling, Garmin UUID carriers on the Dash Cam 57, Nextbase binary subtitles, Escort map sidecars, Mio and Navman NMEA sidecars, Sony sectioned NMEA logs, Botslab session JSONL, and openpilot qlog.zst routes with raw HEVC video. Video playback and GPS extraction are tracked as separate capabilities, no-fix samples are labeled as no-fix handling rather than routes, and foreign-source implementations without a real sample yet are quarantined in their own table until a first recording arrives. If your camera is missing, the in-app card file list generates a report you can send at add-my-camera, and the contributing guide explains the sample-first rule for new formats.

Recent changelog entries show how fast this list moves. November 2026 added comma.ai openpilot support, GKU 600 Pro support, another 70mai A800 log format, and the all-trips map. October brought INNOVV K3 and N2, RedTiger F17, Vueroid S1 4K Infinite, Avylet A1, XEGA dual cameras, Blackview X5S PRO, iBOX RoadScan 2K front and rear recognition, iZEEKER iD300 GPS, RedTiger F7NP-4K, Kaiser Baas R50 files, and fixes for 70mai 4K coordinate offsets that had routes landing tens of kilometers off the road.

Export: Original Quality, Combined Cameras, and Data Overlays

Watching is half the job. Saving the part you need is the other half, and EveryDashCam covers four export paths.

First, original quality export keeps the source video untouched for evidence chains where re-encoding would invite questions. Second, camera combining lays front, rear, cabin, and side views into one file with side by side, stacked, 2 by 2 grid, picture in picture with movable insets, and asymmetric split layouts, plus optional horizontal or vertical mirroring per camera. Manufacturer apps usually export each camera as its own file, so this is the feature that turns three windows into one exhibit. Third, data overlays burn speed in km/h or mph, latitude and longitude, a moving mini map with adjustable zoom and position, plus time, heading, distance, and G-force readouts into the picture, rendered so they survive playback anywhere with no special player. Fourth, GPS can stay inside the exported MP4 or be saved separately as GPX, with multi-track matching and pre-assignment preview, so the clip remains mappable in other tools.

Exports re-encode when layouts, overlays, or blur change the picture, which takes time on long ranges. For the smoothest editing and export the docs recommend Chrome or Edge on a computer, where WebCodecs and GPU paths are fullest. Firefox and Safari cover viewing well with some editing limits documented in the browser support guide. Overlay exports carry a small everydashcam.app watermark while original quality exports are left untouched.

Blur: Share the Incident, Not the Bystanders

Posting dashcam footage usually means broadcasting someone plate or a passerby face to the whole internet. EveryDashCam covers them before you share with three cover styles plus tracking, all rendered into the exported pixels so there’s no hidden layer to peel back.

Pixelate lays a coarse mosaic over the area and is the recommended cover because it reads as deliberate and resists reversal. Solid cover fills the area opaquely for maximum certainty. Soft blur looks nicest but hides the least and suits cosmetics rather than privacy. Zones come in two behaviors: follow-the-object tracking where you mark a plate or face once and the cover follows it through the clip with hand correction at any moment, or fixed zones pinned to one spot for a time range, handy for your own plate, a windshield reflection, or a cabin screen.

Automatic detection and tracking run on device with ONNX Runtime, download a small helper on first use after asking, then work offline. It tracks one object per zone and can lose the target in glare, darkness, or fast motion. So the blur guide advises a quick review pass and hand fixes before sharing. A past bug that could leave saved clip boundaries unblurred was fixed in the October 2026 changelog, which is worth knowing because boundary handling is exactly where privacy tools fail silently.

Privacy and Offline Architecture

Privacy is the architectural point, not a marketing line. Recordings are read locally through the File System Access API, GPS parsing runs in the tab, video decode and export run through Mediabunny locally, and finished files save straight to your computer. The project states plainly that it doesn’t collect trip history, and hosted builds only contact map tiles plus optional crash reporting configured at build time.

Offline support has three layers. The hosted app installs as a PWA and keeps working after the first visit. A beta portable HTML edition packs the whole app into one dated per-language file you can keep on the memory card itself and open directly with no server and no first online visit, verified on desktop Chromium, with playback, GPS, charts, notes, manual blur, and clip export included and auto detection, PWA install, analytics, and crash reporting omitted. If no map provider is reachable the route and markers stay visible on a local background with a Route only mode, and the app retries when connectivity returns. The portable file also makes a small credential-free request to the main site to check for a newer release, sending no recording info, never auto downloading, and never blocking playback when the endpoint is unreachable.

Browser storage stays local to that browser and can depend on the portable file location, so the docs advise exporting the notes file before switching computers, browsers, or HTML filenames, then importing it into the new copy. A read-only card still views fine while exports and notes go to a writable location.

Under the Hood: a Modern Static Web App

The repo is a TypeScript and Vite static web app with no backend, which is why self-hosting is trivial and auditing is practical. Video playback and MP4 export run on Mediabunny, the route map on MapLibre GL JS, charts on Chart.js, on-device plate and face detection on ONNX Runtime, and keyless vector tiles from OpenFreeMap. Localization ships in ten languages including English, German, Spanish, French, Polish, Portuguese, Russian, Chinese, Japanese, and Korean, with a static search index and SEO prerender checks in the build.

Engineering discipline shows in the docs. Parser entry points, variant ordering, multi-record bounds, clock correction, teleport filtering, and trip merging all live in code with tests rather than wiki promises. Release archives ship SHA256SUMS plus GitHub attestation verification commands, Docker images are pinned by version tags, and the privacy policy documents exactly which map requests leave the device. The build needs Node 22 or 24 or newer, no accounts, no API keys, and no local config for the default path.

Self-Hosting: Portable File, Node.js, Docker, or Your Own Server

For a personal or internal installation the self-hosting guide offers five routes to the same static files.

Use the portable HTML when you want a file you can open directly: download the dated HTML for your language from Use offline or the latest GitHub release, keep it on the card or a USB stick, and open it in a desktop browser. Use a Node.js release when Node is already installed: download and serve the release folder with npx serve. Use Docker when you prefer a container: run docker run -d --name everydashcam -p 8080:80 ghcr.io/everydashcam/everydashcam with amd64 and arm64 images, no volumes or variables, stateless with nothing to back up. Copy the release or dist folder to nginx, Caddy, a NAS, or any internal web server when you already have one, with directory indexes for locale paths, extension-less page resolution, long caching for hashed assets, fresh cache headers for sw.js, and same-origin COOP plus require-corp COEP headers per the committed nginx.conf reference. Build from source when you want to change the code: clone, npm ci, npm run build, serve dist, with optional portable builds per locale.

Two networking notes matter. Other devices on the LAN need HTTPS through a reverse proxy because plain HTTP LAN addresses aren’t secure contexts, while http localhost counts as secure and works fully over plain HTTP. Video, route, charts, and original quality export still work over insecure LAN HTTP, but editing, previews, some export options, and offline caching need the secure context. Yandex Maps needs a self-built app with your own Tiles API browser key passed as VITE_YANDEX_TILES_API_KEY at build time, with domain restrictions set for the addresses people use.

Exports that include overlays carry the everydashcam.app watermark, original quality exports are untouched, and the AGPL-3.0 license requires offering complete source under the same terms if you publish a modified version over a network. While the everydashcam name and branding stay reserved for the project itself.

EveryDashCam vs the Usual Tools

Most people arrive from one of three places: a mature desktop viewer, a free GPS viewer, or a paid overlay tool. The project own alternatives pages frame the comparison honestly.

Task EveryDashCam Dashcam Viewer CamGeoPlayer Telemetry Overlay Vendor app
Price and platform Free, in the browser, no install Paid desktop app for Windows and Mac Free Windows GPS viewer Paid desktop overlay tool Free but one brand only
Multi-brand GPS maps 40 plus brands with GPS map and speed chart Broad brand coverage with map GPS viewing with fewer charts Reads action cam telemetry well, dashcam GPS is secondary Own cameras only
Multi-camera sync and combine Synced front plus rear plus cabin with one-file combined export Multi-camera review strengths vary by version Basic multi-file handling Strong overlay compositing, manual sync Plays together, exports separately
Speed and map burned into video Built in, free, with moving mini map Export options depend on edition Limited overlay path Excellent gauges, paid Rarely offered
Plate and face blur with tracking Manual plus on-device AI tracking, free Depends on external editor No built-in blur story Not a privacy tool No built-in blur story
Privacy model Nothing uploaded, offline PWA and portable HTML Local files, closed source Local files, Windows only Local files, closed source Cloud features vary by brand
Self-hosting Portable HTML, Node, Docker, any static server, AGPL source Not self-hostable Not self-hostable Not self-hostable Hosted by vendor

The short version is that EveryDashCam handles everyday review in the browser for free, which covers most drivers, while the paid desktop tools still win for forensic frame work, exotic codecs, or broadcast-grade gauge design. CamGeoPlayer remains a fine free Windows-only GPS viewer, but it lacks the charts, sync, export, and cross-platform browser story.

Why Hams, Field Operators, and EmComm Drivers Should Care

This is a ham radio blog, so here is the field angle. Mobile operations generate driving evidence constantly: SOTA and POTA access roads, repeater site surveys, antenna field tests, club event convoys, ARES and RACES deployments, and storm spotter runs. A dashcam becomes a trip logger with video proof, and EveryDashCam turns that raw card into an after-action package with route, speed, G-force events for rough tracks, and a combined front plus rear clip with map overlay for the event report.

Three patterns fit well. First, activation access documentation: export the final approach with moving map and coordinates burned in so the next activator finds the trailhead. Second, EmComm exercise evidence: harsh-braking and impact event marks plus GPS tracks give net control a timestamped movement record without touching APRS. Third, training nights: the all-trips map with location filtering turns a month of club drives into a coverage survey for simplex and repeater reach, and GPX export feeds the same track into mapping tools the club already uses. The comma.ai openpilot support even matters for data-minded operators logging CAN-adjacent telemetry alongside video.

The privacy story matters here too. Event videos shared publicly shouldn’t dox other drivers plates or bystanders faces, and the burned-in pixelate workflow handles that before upload. The offline PWA and portable HTML matter in the field where the venue WiFi is saturated and the only computer is a shared laptop.

Honest Limits Before You Switch

No tool reads everything, and this project says so up front. Some samples verify only no-fix handling rather than a route, some re-encoded review clips carry no machine-readable GPS even when the overlay shows coordinates, and some formats are recognized only to refuse a false decode, such as encrypted Akaso Type-8. FITCAMX test streams, E-ACE, Fujida Karma Pro Max, GKU D900 re-encodes, HP f969x private streams, Rexing SC4KS originals, and JOOYFACT A1 originals are documented as video-only or no-GPS in the tested samples, which doesn’t always mean the model lacks GPS but does mean that sample had none. Azdome M27 and M550 Pro post-XOR layouts, Nextbase 512GW accel extras, and several foreign-source layouts await first real samples.

Browser limits are real too. Editing and export are fullest in Chromium on a computer, iPhone and iPad folder picks copy recordings and the app steers mobile users toward a computer or the Files app, HEVC on Windows may need a codec the player explains on the spot, and plain HTTP over the LAN disables editing and offline caching until HTTPS is set up. Long combined and overlay exports re-encode and take time, auto tracking handles one object per zone and can lose targets in glare or darkness, and portable builds omit auto detection and PWA install by design.

Getting Started in Five Minutes

Drop the whole SD card folder onto everydashcam.app, open the trip that matches your drive, hover the speed-colored route to find the moment, mark the range, pick a layout and overlays, add blur zones where needed, and save. If the GPS is missing, the viewer explains what it expected and links the report flow. If your brand is unsupported, send the card file list through add-my-camera or open a camera-support issue on GitHub because reliable support needs real recordings and sometimes the companion logs and original card folders.

For clubs and labs, pin a version with the Docker image or a portable HTML per event laptop, keep one notes file per card, export GPX alongside MP4 for the archive, and prefer pixelate over soft blur for anything public. For developers, the parser registry, filename techniques, source hints, anonymized fixtures, and attestation-verified releases make this one of the more auditable GPS video projects to contribute to.

EveryDashCam doesn’t try to be a cinematic editor. It tries to answer three questions fast: where was I, what happened, and what part do I send. For dashcam footage, that is exactly the right scope, and doing it free, open source, and without uploading your drive history makes it easy to recommend.

Sources and Further Reading

73 de 9M2PJU

Post Comment