The file player allows you to run the entire system without cameras by feeding recorded video files into the shared memory pipeline. This is essential for:
You need one video file per camera feed. These can be:
If your three video files were not started at the same moment, you need frame offsets to synchronize them. Find a visible event (e.g., a jumper crossing a reference point) in all three feeds and count the frame difference.
Example: if the same event appears at frame 8167 in feed 0, frame 6015 in feed 1, and frame 5032 in feed 2:
Feed 0 offset: 8167
Feed 1 offset: 6015
Feed 2 offset: 5032
Open three command prompts and run one file player per feed:
bin\fileplayer.exe 0 videos\camera_bottom.mp4 8167
bin\fileplayer.exe 1 videos\camera_middle.mp4 6015
bin\fileplayer.exe 2 videos\camera_top.mp4 5032
Each player writes frames at 60fps into its feed's shared memory buffer.
Open three more command prompts:
bin\motion.exe 0 settings.txt
bin\motion.exe 1 settings.txt
bin\motion.exe 2 settings.txt
Or use the controller: click Start All (but do not start capture processes, since file players replace them).
bin\videogen.exe settings.txt
bin\viewer.exe settings.txt
You should now see the merged video output with the ability to scroll through frames and measure distances.
You can also manage file playback through the controller, but you need to start the file players manually from the command line (the controller's Start Capture buttons launch capture.exe, not fileplayer.exe). A typical workflow:
controller.exe settings.txtFor quick testing with just one camera, you can run a single feed:
bin\fileplayer.exe 1 test_video.mp4
bin\motion.exe 1 settings.txt
bin\viewer.exe settings.txt
The viewer will show whatever is in the output buffer. Without videogen, you can still navigate the raw feed frames.
The file player exits when it reaches the end of the file. To loop continuously, restart the players. The circular buffer retains the last 520 frames (~8.7 seconds), so there will be a brief gap when the player restarts.
| Problem | Solution |
|---|---|
| Black screen in viewer | Verify file players are running and writing frames. Check log output for errors. |
| Feeds out of sync | Adjust frame offsets. Find a common reference event in all three feeds. |
| Motion not triggering | Check feed_motion_on settings. Verify motion regions cover the jumper's path. Try lower min_blob_sizes. |
| Video file not supported | Convert to MP4 (H.264) using FFmpeg: ffmpeg -i input.avi -c:v libx264 output.mp4 |
| File player exits immediately | Check the file path exists. Verify the video file is not corrupted. |