Xiongmai recorders and cameras, managed with the XMeye app, save footage as .h264 files in
their own format: each frame has a small header, keyframes carry the date and a nominal frame
rate, and G.711 sound frames sit in between. Media players see a broken H.264 stream; converters
that strip the headers lose the sound and play the video at the nominal rate.
Why the speed is usually wrong
The nominal frame rate in XMeye files is not what the camera delivers. Cameras drop frames in low light and when busy, and switch rates as they go: in one real recording, the parts marked 13 fps hold about 12.5 frames per second and a part marked 25 fps holds about 10. Played at a constant rate, the video runs ahead of real time and ahead of its sound.
The sound is recorded without breaks, so it is a reliable clock. Each frame is placed at the moment of the sound around it, evened out over each group of pictures; without sound, the dates in the keyframes set the pace over stretches of several seconds. A jump in those dates beyond what the sound covers is a gap in the recording and is listed in the report.
How to convert an XMeye .h264 file
- Upload the
.h264files, or a ZIP of the export. - Choose Join the clips into one video if the recording was split.
- Download the MP4: H.264 copied unchanged, G.711 sound as AAC, named after the recording start, with the recorder's date and time as an optional subtitle track.
The report gives the frame rate that was measured next to the one the file claims, and anything that was damaged, such as an export cut off in the middle of a frame. For WhatsApp or an upload portal, Make it play everywhere re-encodes to H.264 at up to 1080p and 30 fps.
More about what this tool reads and writes: CCTV Footage to MP4.