Recording from multiple cameras on network - UCSB-VRL/multimodal_vrl_camera_net GitHub Wiki
Implementation
The networked implementation uses server threads to control when sensors are recording or not. It uses frame counting in order to ensure each frame lines up with the corresponding frame from a different sensor set (e.g. frame_5 on one system should be taken at the same time as frame_5 on a different system). When using Rasberry Pi’s, it doesn’t completely correspond because of hardware limitations (one frame from on one system might be slightly sooner than the corresponding frame on another system); also the frame rate is slow with an RPi (>1 fps). Each camera outputs a text file to synchronize frames with the other cameras.
Initialization
To record with multiple cameras, set the correct host IP in client.py
, cam1.py
and camN.py
. server_threads.py
is used to create the synchronization server for the sets of cameras. cam1.py
is ran on the computer controlling the master camera as well as server_threads.py
. camN.py
is ran on the slave cameras. Make sure that device dev number is set in the file. Lab RPis are set up to use the vrl-decu network with static IPs (little white TP-LINK router)
Control Recording
After the systems are initialized you can control recording from the camera1 device. Use r to start recording. Use s to stop and save that recording. You can use r to start a new recording afterwards. Use esc to end the program.