-
Notifications
You must be signed in to change notification settings - Fork 164
Description
Environment
Raspberry Pi 5
rpicam-vid --list-cameras
Available cameras
0 : ov9281 [1280x800 10-bit MONO] (/base/axi/pcie@1000120000/rp1/i2c@88000/ov9281@60)
Modes: 'R8' : 640x400 [309.79 fps - (0, 0)/1280x800 crop]
1280x720 [171.79 fps - (0, 0)/1280x720 crop]
1280x800 [143.66 fps - (0, 0)/1280x800 crop]
'R10_CSI2P' : 640x400 [247.83 fps - (0, 0)/1280x800 crop]
1280x720 [137.42 fps - (0, 0)/1280x720 crop]
1280x800 [114.93 fps - (0, 0)/1280x800 crop]
1 : ov9281 [1280x800 10-bit MONO] (/base/axi/pcie@1000120000/rp1/i2c@80000/ov9281@60)
Modes: 'R8' : 640x400 [309.79 fps - (0, 0)/1280x800 crop]
1280x720 [171.79 fps - (0, 0)/1280x720 crop]
1280x800 [143.66 fps - (0, 0)/1280x800 crop]
'R10_CSI2P' : 640x400 [247.83 fps - (0, 0)/1280x800 crop]
1280x720 [137.42 fps - (0, 0)/1280x720 crop]
1280x800 [114.93 fps - (0, 0)/1280x800 crop]
rpicam-vid --version
rpicam-apps build: v1.10.1 28-11-2025 (16:40:26)
rpicam-apps capabilites: egl:1 qt:1 drm:1 libav:1
libcamera build: v0.6.0+rpt20251202
uname -a
Linux pi5 6.12.62-v8-16k+ #1928 SMP PREEMPT Wed Dec 17 15:38:28 GMT 2025 aarch64 GNU/Linux
Issue
When trying to use the multi-camera synchronization feature of rpicam-vid the captured frames appear to be pinned to 30 fps when using the --segment parameter regardless of what --framerate is set to. Oddly the preview window conflicts with this showing the desired framerate.
How to reproduce
create temp location in ram to store files
mkdir /dev/shm/track
command to run server process to begin creating frames
rpicam-vid --camera 0 --timeout 0 --codec mjpeg --segment 1 --mode 1280:800:10 --framerate 120 --output /dev/shm/track/cama%09d.jpg --save-pts /dev/shm/track/atimestamp.txt --sync server
contents of timestamp file
the timestamps remain at ~33.3 ms interval, or 30 fps.
# timecode format v2
0.000
33.351
66.704
100.053
133.404
166.756
200.105
233.455
266.806
300.158
...
12339.772
12373.123
12406.471
12439.820
12473.171
12506.522
adding client process
Using a client process and starting this first will wait for the server to start as expected. After server starts the client will start but the timestamps are also ~33.3 ms for the client.
rpicam-vid --camera 1 --timeout 0 --codec mjpeg --segment 1 --mode 1280:800:10 --framerate 120 --output /dev/shm/track/camb%09d.jpg --save-pts /dev/shm/track/btimestamp.txt --sync client
The preview windows for both server and client display 120 fps.
behavior without --sync param
If I remove the --sync parameter from both client and server commands above then the captured frames are now at 120 fps as expected according to the timestamp file.
# timecode format v2
0.000
8.328
16.680
25.008
33.351
41.690
50.038
58.365
66.704
...
5136.005
5144.344
5152.681
5161.019
5169.355
5177.696
5186.029
5194.371