尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Free, open-source dashcam footage viewer in your browser: every clip by day and time, front and rear in sync, frame by frame, GPS route on a map. Nothing is uploaded.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Dashcams name every clip with a string of digits, like 2024_0315_143022_000123F.MP4, and split each moment over separate front and rear files. Tripframe opens the SD card in your browser and turns that folder into a library: every clip by day and time, front and rear paired into one moment, ready to play, step through and save.
Nothing is uploaded. Files are read locally with the File System Access API. There is no server that receives your footage, no account and no tracking.
W key or a double-click. Drag the small picture's corner or the split line to resize. Scroll to zoom into the picture and drag to pan., and .; the real clock time and frame number are shown.I and O set the start and end).H).T), with optional street addresses; export and import as GPX. Route export as GPX, KML, CSV or GeoJSON.? in the player for every shortcut.| Brand | Example file name | Read from the name |
|---|---|---|
| Viofo and other Novatek-based cameras | 2024_0315_143022_000123F.MP4 | date, time, camera, parking/event |
| BlackVue | 20240315_143022_NF.mp4 | date, time, camera, normal/event/parking/manual |
| Thinkware | REC_2024_03_15_14_30_22_F.MP4 | date, time, camera, recording type |
| 70mai | NO20240315-143022-000123F.mp4 | date, time, camera, normal/event/parking |
| Nextbase | 240315_143022_001_FH.MP4 | date, time, camera |
Locked clips in folders such as RO, Event or Protect are marked as events, and Parking folders as parking. Other cameras work when the file name contains a date; otherwise the file's modification date is used. GPS is read from Viofo/Novatek freeGPS blocks, BlackVue NMEA data (with altitude and satellites from GGA lines) and the GoPro GPMF telemetry track (with altitude and the accelerometer).
Is your camera missing or named differently? Open an issue with a few example file names.
DCIM folder.| Browser | Support |
|---|---|
| Chrome, Edge | Full: choose a folder, drag and drop, remembers the last folder |
| Firefox, Safari | Works through a folder picker |
Many dashcams record in H.265 (HEVC). Edge plays it on most Windows PCs, Chrome needs the HEVC Video Extension from the Microsoft Store, and Safari on a Mac plays it out of the box.
| Key | Action |
|---|---|
Space / K | Play or pause |
, / . | One frame back or forward |
← / → | 5 seconds back or forward (Shift: 1 second) |
↑ / ↓ | Previous or next clip |
W | Swap front and rear |
1 / 2 / 3 | Side by side, picture in picture, one camera |
M | Mute or unmute |
- / + | Volume down or up |
G | Show or hide the map |
H | Show or hide driving data on the video |
T | Add a marker on the route |
S | Save the current frame |
I / O | Set the start or end of the part to export |
R | Save the clip as a video in the layout you see |
0 | Reset zoom |
? | Show the shortcuts |
Esc | Back to the library |
Tripframe is a static web page. Your browser reads the folder you choose and your footage is never sent anywhere: no uploads, no account, no analytics, no cookies. It only reads files and never changes anything on the SD card. When a clip with GPS is shown on the map, map pictures are loaded from OpenStreetMap, or from Esri for the satellite views. Weather (Open-Meteo) and street addresses (OpenStreetMap Nominatim) are only looked up when you switch that on. See the privacy page.
Tripframe is plain JavaScript with Vite, Leaflet for the map, Motion for animation, Lucide icons and mp4-muxer for writing joined and reversed videos. No framework, no backend. npm test runs the unit tests.
git clone https://github.com/JJanyar/tripframe.git
cd tripframe
npm install
npm run dev
npm run build writes a static site to dist/. The build also writes every site page and blog post per language (/nl/, /de/features/ …) with the text in the HTML, a sitemap.xml and structured data, so search engines and AI assistants can read the pages without running JavaScript.
| Path | What it holds |
|---|---|
index.html, src/landing.* | The homepage |
features/, dashcams/, how-it-works/, faq/, privacy/, 404.html | The other site pages; src/page.js and src/pages.css are shared |
src/partials/ | The navigation and footer, put into every page at build time |
app/index.html, src/app.js | The library: folder scan, filters, trips, day list |
src/viewer.js, src/record.js, src/clip.js | The player, frame and clip export |
src/merge.js | Joining clips into one MP4, and two cameras into one picture |
src/route.js, src/plot.js, src/geotags.js, src/online.js | GPS export, graphs, markers, weather and addresses |
src/audio.js | Finding loud moments |
src/parse.js | File name parsing and front/rear pairing |
src/mp4.js | Frame rate, tracks, and GPS and telemetry from MP4 files |
src/locales/ | All interface text, one file per language |
blog/, blog.js | Blog posts in Markdown (per language) and their build step |
seo.js | Build step for static text, language pages and the sitemap |
public/brand/ | Logo and icons |
Contributions are welcome, especially support for more dashcam brands, translations and bug reports with example file names. See CONTRIBUTING.md.
Sample dashcam photos on the homepage, and the demo clips in public/demo made from them, are from Wikimedia Commons and are in the public domain or CC0. Flags from flag-icons (MIT). Map data © OpenStreetMap contributors.