Getting errors while live streaming from Theta Z1 + Jetson Nano to opencv

I’m running the same version of Jetpack

I can test it with a Z1 later today.

Is the firmware of your Z1 updated? You can use the free desktop app on Mac/Windows of the free mobile app on Android/iOS to update the Z1 firmware.

thanks @Craig we bought 3 Ricoh theta z1 after seeing your post and videos, we thought this could help us in our case but now we’re facing issues but I knew it will be fixed by your support.

cat /etc/nv_tegra_release

R32 (release), REVISION: 7.4, GCID: 33514132, BOARD: t210ref, EABI: aarch64, DATE: Fri Jun 9 04:25:08 UTC 2023

Do you know how to upgrade the firmware inside the RICOH THETA Z1?

If you connect the Z1 to a computer with Wifi when the Z1 is a hotspot, you can get the firmware version with:

http://192.168.1.1/osc/info

Yes, I will do this @Craig thanks

I want to use gstthetauvc with opencv for live streaming so please guide me for this.

not working

Is the camera mounted as a filesystem?

@Vijay_Saw unfortunately, there is something wrong with my Jetson Nano and I don’t have equipment to test this with right now. However, I did install and run Jetpack 7.1 (nv_tegra_release) in June of 2023 and it worked fine.

I remember that someone else at a University was having the same problem as you. I believe that the source of the problem was that the camera was being mounted as a filesystem.

Also, I’ve never used Docker with my install. I used Etcher with the image.

Did you get the SD Card Image from this link?

I also used Etcher to flash the image and today I reinstalled everything but still I am getting an error
the only think I have to do is to update firmware
./gst_loopback

start, hit any key to stop
Opening in BLOCKING MODE
NvMMLiteOpen : Block : BlockType = 261
NVMEDIA: Reading vendor.tegra.display-size : status: 6
NvMMLiteBlockCreate : Block : BlockType = 261
Error: Internal data stream error.
stop

Isn’t that a different error than you had before?

The original error you posted was Found 1 Theta(s), but none available.

image

The error you just posted is

Error: Internal data stream error.

Do you have the viewer working with ./gst_viewer?

BTW, I ordered a replacement Jetson Nano for my personal testing, but it may take 2 weeks to getto my office. In the meantime, we have several years of people testing the Z1 with Linux for streaming. There’s a lot of great information on this site.

yes get_viewer is working and I was getting above error that I have posted earlier on running this command gst-launch-1.0 thetauvcsrc mode=4K ! queue ! h264parse ! decodebin ! queue ! autovideosink sync=false

In the thread above, the person had almost the same problem as you. He marked the last post as “Solution”. Maybe you can try and contact him?

It seemed like the last pipeline worked for him.

Note that in that discussion, the THETA was mounted on the Jetson as a filesystem at some point which caused a problem.

You have the camera showing and working with gst_viewer, right?

$ ./gst_viewer -l
No : Product            : Serial    
 0 : RICOH THETA Z1     : 10010104  

You’ve loaded v4l2loopback with modprobe

as root

 # modprobe v4l2loopback

lsmod shows v4l2loopback in the kernel.

$ lsmod
Module                  Size  Used by
uvcvideo               88565  0
bnep                   16562  2
zram                   26166  4
overlay                48691  0
spidev                 13282  0
v4l2loopback           37383  0

v4l2-ctl shows the dummy video device

$ v4l2-ctl --info
Driver Info (not using libv4l2):
	Driver name   : v4l2 loopback
	Card type     : Dummy video device (0x0000)
	Bus info      : platform:v4l2loopback-000
	Driver version: 4.9.140
	Capabilities  : 0x85208003

if you have gst_viewer working, it’s likely you’ll get the loopback working soon.

Hello @craig

I am using opencv and thetauvcsrc to get the live streaming on Jetson Nano

VideoCapture cap("thetauvcsrc ! decodebin ! autovideoconvert ! video/x-raw,format=BGRx ! queue ! videoconvert ! video/x-raw,format=BGR ! queue ! appsink");

this is working as expected but FPS is very-very low but I just wanted to know,

is there a command to stop live streaming ?


Regards,
Vijay Saw

You can use the USB API to:

  • put camera to sleep (which will stop the stream)
  • wake camera from sleep, which will restart the stream

Alternately, you can use the USB API to switch the camera to video or image mode, which will step the stream over the USB cable.

FPS should be in the 30fps range with a 4GB model of the Jetson Nano without opencv processing. It will drop if you’re using object detection.

I tried all of those command that you have mentioned but it is giving an error device is busy and this is only happening when I am trying to stream more than 15-20 minutes.

Running on Jetson Nano with libgphoto2

or, if you’re using libptp2

The Z1 provides an error with /osc/state Do you have an error occurring when you can’t put the camera to sleep?

RICOH THETA Z1 or prior

Error code Can/not shoot Desription Recommended action
NO_MEMORY Insufficient memory Delete files
FILE_NUMBER_OVER Maximum file number exceeded Delete 999 folder or delete 9999 file
NO_DATE_SETTING Camera clock not set Set Date/Time via API
ELECTRONIC_COMPASS_CALIBRATION Electronic compass error Move the camera with ∞ pattern
PLUGIN_BOOT_ERROR *1 Plugin start warning (IoT technical standards compliance) Disconnect from internet
HIGH_TEMPERATURE_WARNING *2 (Board) temperature warning Cool the camera
CAPTURE_HW_FAILED Shooting hardware failure Reboot the camera may help
INTERNAL_MEM_ACCESS_FAIL Internal memory access error Reboot the camera may help
UNEXPECTED_ERROR Undefined error Reboot the camera may help
BATTERY_CHARGE_FAIL Charging error Check USB cable or charger
HIGH_TEMPERATURE (Board) temperature error Cool the camera
BATTERY_HIGH_TEMPERATURE *1 Battery temperature error Cool the camera

*1 RICOH THETA Z1 or later
*2 RICOH THETA Z1 v2.20.3 or later

Getting this error while changing or trying to stop live streaming

theta --set-property=0x5013 --val=0x0001

Camera: RICOH THETA Z1

'Still Capture Mode' is set to: 0x8005 (-32763)

Changing property value to 0x0001 [(null)] FAILED!!!

PTP: Device Busy

image

it’ is only happening when I try to close this streaming after 20 min.

even on trying with libgphoto2 getting same error please see

gphoto2 --set-config=/main/other/d80e=1
                                                                               
*** Error ***              
The property 'PTP Property 0xd80e' / 0xd80e was not set (0x2019: PTP Device Busy).

seems like Gstreamer pipeline is not closing ?

I can replicate this problem if the camera is streaming and being used by libuvc.

ptpcam --set-property=0x5013 --val=0x0001

Camera: RICOH THETA Z1
'Still Capture Mode' is set to: 0x8005 (-32763)
Changing property value to 0x0001 [(null)] FAILED!!!
PTP: Device Busy

I can switch between live streaming and image when the camera is not being used by libuvc.

Can you try open an issue on GitHub?

@Vijay_Saw , I submitted a community inquiry to ricoh to clarify the USB API specification and I received a response.

During live streaming in “live streaming mode”, MTP commands for changing settings are not accepted.
During not live streaming in “live streaming mode”, MTP commands for changing settings are accepted.

How critical is this feature to your deployment?