Is it possible to streaming from multiple THETA Z1 to one Ubuntu PC with OpenCV?

Hi all,

Thanks to the knowledge of this community, I currently can use opencv to capture livestream video from one USB-plugged THETA Z1 with this string “thetauvcsrc mode=2K ! queue !.. ! appsink sync=false drop=true”.

How can I capture from multiple (say 3+) THETA Z1 simultaneously? I assume I need to open one subprocesses per camera and capture separately, but how to specify the camera index to different THETA Z1 in the gstreamer string above? will there be any conflict between subprocesses?

Thank you!

I do not know how to do this. Hopefully, someone else with more experience can respond. Have you tried creating separate devices with v4l2loopback?

The readme explains how to get multiple devices.

it appears that other people are using OpenCV with two cameras.

If you have progress, please report back.

@craig Thanks for the quick post!

I understand with standard opencv or v4l2loopback may work with multiple standard USB cameras. I end up using gstreamer “thetauvcsrc” because it gives the best streaming speed with Theta Z1. Therefore, I hope to drive all Theta Z1 with “thetauvcsrc” as well.

If it works, please report back.

thetauvcsrc mode=2K ! queue ! h264parse ! nvv4l2decoder ! queue ! nvvidconv ! video/x-raw, format=BGRx ! videoconvert ! video/x-raw, format=BGR ! queue ! appsink

Please see this note from researcher H. Usuba from Robotics Company Kufusha

I believe I am running two instances of thetauvcsrc, one process for each camera. Since I’m running two ROS nodes, I assume both are being executed.

The pipeline is included in this list:

If you build a working pipeline, I’d like to include your pipeline in the community doc too. It’s also possible that the H. Usuba pipeline and technique of running two ROS nodes will just work.