Hello. I am working with a Jetson Xavier and multiple cameras. I created a test pipeline with only two cameras (no inference added for the moment). Pipeline goes like:
probe
|
v4l2src -> caps_f -> nvvidconv -> caps_f -| |- queue -> nvv4l2h264enc -> filesink
|-> streammux -> streamdemux ->|
v4l2src -> caps_f -> nvvidconv -> caps_f -| |- queue -> nvv4l2h264enc -> filesink
|
probe
Pipeline works fine but I have some problem with timestamps. I would like to have very synchronized video streams from both cameras. I would like to be able to match two frames from both cameras using timestamps.
Thus, I added a probe into each v4l2src src and I compared the timestamps values inside GstBuffer(buffer’s offset, pts and dts) for same ‘frames’ (frames with same offset value). I got that all timestamp differences between frames were around 79ms between cameras…
I would like to know:
- Do I have to do something special to have synchronized camera? I have read that I can add ‘Hardware Synchronization - PWM Trigger Mode’ between cameras. But should I do something else to force stream synchronization? (adding threads on v4l2 or something)
- I guess offset value does not mean same frame at a time?.. How can I compare timestamp of two frames that were taken at same moment?
Thanks!
Edit: Adding graph of pipeline: