voxl-streamer client repetitive connect/disconnect
We are having problems when streaming our UVC camera with VOXL streamer.
The voxl-streamer repetitively connects then disconnects when trying to access the camera
Some background, we are using the Sony IMX sensor that is connected to the Microhard add-on board.
lsusbwe can see the device there (although there is no name for it)
The tracking camera and hires camera are able to stream without incident.
Any insight would be greatly appreciated. Thank you!
There is a known issue with UVC streaming. I'm not sure when it will be fixed. We'll try to investigate and get back to you in a few days.
Right on. I will try some troubleshooting from my end as well. Will let you know if I find anything interesting.
@wilkinsaf UVC camera support was developed against QGroundControl v3.5.6 and using a Logitech C270 camera. Newer versions of QGroundControl do not wait long enough for the connection to come up and try to restart. Also, cameras that do not support a raw format won't work. I would try with QGoundControl v3.5.6 first and see if your camera works with that.
An update to UVC camera support has been started. It will increase number of supported cameras by allowing MJPEG and will increase number of supported viewers including latest QGroundControl versions. Target availability is mid-December.
@Eric-Katzfey Thank you for the update Eric!
Also, is there a format/guide on how to modify the camera configuration file? For example if a camera was giving off a different format, framerate, size, etc...
I was trying to find a guide on how to modify that file, but could not.
I figured it would be helpful for developers.
@wilkinsaf The configuration file for voxl-streamer is documented here: https://docs.modalai.com/voxl-streamer/#configuration-file-format
@wilkinsaf The configuration for voxl-camera-server is discussed here: https://docs.modalai.com/voxl-camera-server/#configuration
@wilkinsaf There is an initial version of a new UVC camera server application now available from our "dev" package repo. The application voxl-uvc-server works in conjunction with voxl-streamer to better support UVC cameras. It has been tested with the Logitech C270 and Videology 5MP Micro USB 2.0 Board Camera. The documentation is at https://docs.modalai.com/voxl-uvc-server/ and the code is at https://gitlab.com/voxl-public/modal-pipe-architecture/voxl-uvc-server. To try it out, install the latest Voxl platform release voxl_platform_3-3-0-0.5.0-a. On target, configure the opkg package manager to use the modalai dev repo (https://docs.modalai.com/configure-opkg/). Then use
opkg install voxl-streamerto upgrade voxl-streamer from 0.2.6 to 0.2.7 (and libmodal_pipe from 2.1.1 to 2.1.2). Then
opkg install voxl-uvc-serverto install the new voxl-uvc-server application v0.0.5. Run
voxl-uvc-server -dto start the application with debug messages. Then run voxl-streamer with
voxl-streamer -f /usr/share/modalai/voxl-streamer/voxl-streamer.conf -c uvc-serverto use the new configuration file and record type for the uvc server. Let me know if this works for you.
quick comment for anyone reading this, it is
voxl-uvc-server -dwhen running
@wilkinsaf Thanks! I fixed the typo in the original post.
I am seeing that this failed for MJPEG
voxl:~$ voxl-uvc-server -d
Enabling debug messages
uvc_get_stream_ctrl_format_size failed for MJPEG
Is there a config file for this that I can modify to change the format?
@wilkinsaf That shows a failure of the camera to support either MJPEG or YUV422. In order to support that camera you need to know what formats it supports. The best way to do that is to query it's capabilities on the command line. First of all use the
lsusbcommand to find out the device id and product id of the camera. For example:
Ubuntu18$ lsusb Bus 001 Device 090: ID 046d:0825 Logitech, Inc. Webcam C270 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
This shows you that the UVC webcam has device id and product id
046d:0825. You can use that to query it's capabilities with
lsusb -v -d 046d:0825. This will dump all of the camera capabilities to the output. Can you respond with the output from your camera?
Not sure if voxl-uvc-server got removed.
I can not seem to find it in the public repo:
@wilkinsaf The current voxl-uvc-server capabilities only cover uncompressed frames, not mjpeg. The two cameras that you are looking at both have uncompressed formats but the guidFormat is slightly different than the cameras I have tested with. Let me look into this a little deeper.
@wilkinsaf The formats should be compatible. I'll have to dig into the libuvc code to see why they are not accepted.
@wilkinsaf Are either of these cameras cheap and easy to purchase?
I believe so. Let me find them online really quick. I was able to get the video's from the cameras streaming using the directions here: https://docs.modalai.com/uvc-streaming/
I moved over the ffmpeg ipk and executed
ffmpeg -i /dev/video2 -f mpegts udp://QCS_IP:4242
So I know that they are working.