尚未偵測到更新。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 are from Wikimedia Commons and are in the public domain or CC0. The demo clips in public/demo are the author's own Viofo A229 Pro footage: 10 seconds each, without sound, with the camera's stamped text cropped away. Flags from flag-icons (MIT). Map data © OpenStreetMap contributors.