Hello there, i usually try not to bother (and there’s already been a handful of posts about multiple cameras) but from all the posts i’ve read there seems to be some helpful and knowledgeable people here.
tl;dr: We’re trying to record two videos from two cameras on a Jetson Nano, and there’s always a new problem…
First we tried with USB cameras, and after trying multiple models and trial and error, we got something working, but e-con’s cameras didn’t capture enough light at enough framerate (even if our conditions aren’t very demanding, just at least 20-30 fps in a decently lighted football/soccer pitch). They said they would get back to me on this, haven’t yet.
Then we got some CSI cameras from them, managed to install their drivers, and got very good results. So we bought Leopard Imaging’s carrier board (LI-NANO-CB) so that we can have (more than) 2 MIPI-CSI jacks… but then we can’t use e-con’s drivers without overwritting Leopard’s drivers (from what i investigated in the flashing procedures both replace the /boot/Image and the device tree), and neither support team has given me a solution for this. I don’t have the expertise to personally write drivers (and it seems weird that i should). If anyone has any idea i’d love a helping hand!
So we tried Leopard’s CSI cameras (LI-IMX219-MIPI-FF-NANO), and when i got those working… the quality doesn’t seem too good (and has the following problem also).
An additional problem is that in most cases even if we have a fast microSD card (https://www.walmart.com/ip/Onn-128GB-Class-10-U3-V30-microSDXC-Flash-Memory-Card-up-to-100MB-s-read-speed/772835319) the Nano can’t seem to keep up with writing HD (1280x720) or larger frames. What i have in mind for the moment to solve this is to switch from what we’re using now, which is OpenCV with Gstreamer backend (for LI’s cameras), to directly writing to file with a Gstreamer pipeline which will capture both cameras at the same time… even though this is not an excellent solution because then we can’t process the frames before writing them to file. Is there some way to quickly compress them in OpenCV before writing them? Or any other ideas?
We don’t need perfect syncro between the cameras, e.g. our current code simply grabs from each camera and that frame-time difference is already great for us, then sends the frames to other threads which write them (so we know reading frames is not the slow part), but when they’re big enough they’re way too slow.
Does someone have any solution/suggestion/opinion on any of our problems? I don’t feel like what we’re looking for should be this hard (we’re not even doing any computer vision on the Nano, which i originally had in mind!), but then again we’ve been going back and forth for over a month now and we seem to find problems on every corner!