Dashcam and MDVR Integration: Live Fleet Video on JT/T 808 and JT/T 1078
How we brought Mettax MC401 and MC402 dashcams into IgeotechGPS — a 16-camera live grid, on-device clip retrieval, and telematics that never stops to make room for video.
Story curated by Muhammad Syazz · Junior Developer — Published 20 August 2026, 9:30 AM MYT · 4 min read
Fleet operators do not want to learn a video protocol. They want one screen: see the cab, find the vehicle on a map, pull yesterday's clip before the insurer calls.
For Igeotech (M) Sdn Bhd we integrated Mettax MC401 and MC402 dashcams — and compatible MDVRs — into the IgeotechGPS platform. Live video, GPS, ADAS alarms and saved recordings now arrive through one system, across more than 4,000 tracked units.
The standards the hardware already speaks
These MDVRs talk JT/T 808 and JT/T 1078, the Chinese national standards for vehicle telematics and video. “JT2013” means the 2013 revisions of those two, not a third protocol.
JT/T 808-2013 — telematics
Position, ignition, heartbeats, and ADAS safety events: forward collision, lane departure, fatigue, phone use, smoking.
JT/T 1078-2013 — video
Start and stop a live camera, list the recordings on the device, upload a chosen clip.
We implemented what the hardware already does, then hid the difficult parts behind a fleet interface.
Two planes, deliberately separated
Live video is bursty and bandwidth-hungry; location data has to be relentless. In one process they starve each other. So we split them.
Telematics and commands
Node.js and Feathers, Redis for live state, MySQL for history. Owns the JT808 session: GPS, alarms, and every camera command.
The live video bridge
A dedicated service. The device pushes JT/T 1078 video and audio here; we ingest it, use FFmpeg where needed, and deliver over WebSocket.
The player
Vue and Quasar. H.264 through WebCodecs onto a canvas, MJPEG fallback, G.711 audio. No FLV plugin, no HLS, no WebRTC.
Saved clips
A separate path: query the SD card, have the device FTP the file, remux to MP4, drop it into a library.
Six things that made this hard
Dashcam video is easy to demo and hard to run. These cameras almost follow the 2013 specifications, then diverge.
The spec is a family, not a contract
Real units answer the same resource-list query with several header shapes. We read the variants instead of trusting one vendor's packet dump.
Many MDVRs refuse FTP hostnames
A download command carrying a hostname is silently ignored. The device wants a dotted-quad IP.
Wi-Fi-only units drift
With no cellular tower to set the clock, time-windowed history returns nothing. We set the device clock first.
Live video starts brown
Nothing decodes until a keyframe arrives with the H.264 parameter sets. We wait for it, and re-inject when the decoder stalls.
A file still uploading is not a file
Claiming an FTP drop when the filename appears gives half a clip. We wait for a stable size, then remux.
The playback command was not the one in use
Documentation implies a single playback message. Production uses list-on-device, then FTP.
What the operator actually opens
One workspace: a 1-to-16 camera grid, a map of dashcam units, a vehicle table, and a Saved recordings drawer.
Grid, map and table together
Watch one cab or a whole shift. Duplicate streams are blocked with a toast instead of silently doubling data.
Main, Sub or Auto
Auto steps between the high- and low-bitrate streams when the picture stalls. Snapshot, screen-record and fullscreen sit on the viewer.
A data cap that holds
A usage meter tracks monthly dashcam data and stops streams cleanly at the cap.
Saved recordings, no second tool
Query the device in 15-minute chunks — queued, sending, waiting, done, empty or error. Downloads show progress, cancel safely, and survive a refresh.
From the working system
Screens captured from the live IgeotechGPS fleet portal on the day of writing.
The team behind this build
Delivered by the Sunrise Web & API team, working directly with the client's technical side.
Where it landed
The same session that carries GPS and safety events now starts a camera and asks for a file. Live pictures go through a dedicated bridge, so tracking stays healthy. The vendor quirks stay inside the platform. The operator gets a grid and a drawer.
Contact details available on request.
Let's start with a FREE RFP Analysis session
Sensitive information shared during RFP sessions is protected under NDA.