Cannot setup livestream from docker container

Currently I’m trying to setup a project that can setup an RTSP stream with gstreamer from a robot that has a Theta V/Z1 camera connected to it such that the livestream can be streamed to another device on the network to visualize. The setup should run from a docker container on an Nvidia Jetson Xavier/Orin NX. Eventually I also want to include the known work-around that can power-on the camera through the USB API. The implementation is for an autonomous robot.

I’m wondering if anyone on this forum has experience running a livestream on the Theta camera from a docker container. The current model I use is a Theta V connected to a laptop.
Running the libuvc-theta-sample livestream with ./gst_viewer and gstthetauvc gst-launch-1.0 thetauvcsrc mode=4K ! queue ! h264parse ! decodebin ! queue ! autovideosink sync=false run fine on my Ubuntu 22.04 natively on a Lenovo P14s laptop.
However, when I port everything to a docker container, everything builds without issue. Only, when I run ./gst_viewer, I get that Can't open THETA.
And when I run the gst-launch-1.0 ..... command, the output is:

Setting pipeline to PAUSED ...
ERROR: from element /GstPipeline:pipeline0/GstThetauvcsrc:thetauvcsrc0: Theta not found.
Additional debug info:
gstthetauvcsrc.c(509): gst_thetauvcsrc_start (): /GstPipeline:pipeline0/GstThetauvcsrc:thetauvcsrc0
ERROR: pipeline doesn't want to preroll.
ERROR: from element /GstPipeline:pipeline0/GstThetauvcsrc:thetauvcsrc0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3556): gst_base_src_start (): /GstPipeline:pipeline0/GstThetauvcsrc:thetauvcsrc0:
Failed to start
ERROR: pipeline doesn't want to preroll.
Failed to set pipeline to PAUSED.
Setting pipeline to NULL ...
Freeing pipeline ...

Steps done.

  • $ libusb gives the correct result Bus 003 Device 052: ID 05ca:2712 Ricoh Company, Ltd. RICOH THETA V
  • ensured I copied gstthetauvc.so to /usr/lib/x86_64-linux-gnu/gstreamer-1.0/
  • ran sudo ldconfig
  • seems like no other version of libuvc in the docker container

Is there anyone who could help me locate the issue?

this might be relevant

I believe the Boston Dynamics Spot runs inside Docker??? I’m not sure, as I do not have a Spot. However, I believe the question of using the stream inside of Docker has come up.

I searched for ERROR: pipeline doesn't want to preroll. on the forum and this:


note

  1. I have not tried with Docker
  2. I only have a Jetson Nano (NOT Orin)
  3. I’m not sure if the problem is related to Docker or not

Do you need to run inside of Docker?

How can I run it inside of Docker on my Jetson Nano? I am willing to install a new image on a separate microSD card and do the test on that.