uvc_get_stream_ctrl_format_size failed
-
@Kris Yeah that's just the default that
voxl-uvc-serveruses if not explicitly specified otherwise with the-rflag.You can use
show-video-device-info.shand that may provide some clues.What is the part number or make and model of the UVC camera you're using? It's possible it's supported image formats don't match up with those supported by
voxl-uvc-server -
I have a feeling that maybe the problem is deriving from my camera’s GUID Format.
Does the voxl-uvc-server acceptGUID: 4832363400001000800000aa00389b71
for h264 format?
How would I go about correcting the guidFormat to match up with the voxl-uvc-server? -
@Kris You can see supported format info here: https://gitlab.com/voxl-public/voxl-sdk/services/voxl-uvc-server/-/blob/master/src/main.c#L64
Another thing to try out is using gstreamer instead of voxl-uvc-server + voxl-streamer with a pipeline similar to the following:
gst-launch-1.0 v4l2src device=/dev/video2 ! video/x-raw,format=YUY2 ! videoconvert ! x264enc speed-preset=ultrafast tune=zerolatency ! rtph264pay name=pay0 ! udpsink host=192.168.1.97 port=8554The pipeline may need to be tweaked slightly but it's one I've used before for other UVC cameras that voxl-uvc-server was unhappy with
-
@Kris You can see supported format info here: https://gitlab.com/voxl-public/voxl-sdk/services/voxl-uvc-server/-/blob/master/src/main.c#L64
Another thing to try out is using gstreamer instead of voxl-uvc-server + voxl-streamer with a pipeline similar to the following:
gst-launch-1.0 v4l2src device=/dev/video2 ! video/x-raw,format=YUY2 ! videoconvert ! x264enc speed-preset=ultrafast tune=zerolatency ! rtph264pay name=pay0 ! udpsink host=192.168.1.97 port=8554The pipeline may need to be tweaked slightly but it's one I've used before for other UVC cameras that voxl-uvc-server was unhappy with
@tom
Thank you, I will give this a try.
I am trying to use H.264 on this camera.
This is the second UVC camera that I’ve purchased because I am trying to log the frames from voxl-logger. From what I understand, H.264 output is the format that can do this.
Is there a way to call for only the /dev/video2 to start with the voxl-uvc-server or gstreamer?
Does the voxl-uvc-server accept h264 1920x1080 @30fps? -
@Kris You can see supported format info here: https://gitlab.com/voxl-public/voxl-sdk/services/voxl-uvc-server/-/blob/master/src/main.c#L64
Another thing to try out is using gstreamer instead of voxl-uvc-server + voxl-streamer with a pipeline similar to the following:
gst-launch-1.0 v4l2src device=/dev/video2 ! video/x-raw,format=YUY2 ! videoconvert ! x264enc speed-preset=ultrafast tune=zerolatency ! rtph264pay name=pay0 ! udpsink host=192.168.1.97 port=8554The pipeline may need to be tweaked slightly but it's one I've used before for other UVC cameras that voxl-uvc-server was unhappy with
@tom
Do I paste this in the voxl terminal?gst-launch-1.0 v4l2src device=/dev/video2 ! video/x-raw,format=YUY2 ! videoconvert ! x264enc speed-preset=ultrafast tune=zerolatency ! rtph264pay name=pay0 ! udpsink host=192.168.1.97 port=8554Does this have uvc frame or video capture capabilities?
-
@Kris You can see supported format info here: https://gitlab.com/voxl-public/voxl-sdk/services/voxl-uvc-server/-/blob/master/src/main.c#L64
Another thing to try out is using gstreamer instead of voxl-uvc-server + voxl-streamer with a pipeline similar to the following:
gst-launch-1.0 v4l2src device=/dev/video2 ! video/x-raw,format=YUY2 ! videoconvert ! x264enc speed-preset=ultrafast tune=zerolatency ! rtph264pay name=pay0 ! udpsink host=192.168.1.97 port=8554The pipeline may need to be tweaked slightly but it's one I've used before for other UVC cameras that voxl-uvc-server was unhappy with
-
@Kris You can read more about how gstreamer and the
gst-launch-1.0command works here: https://gstreamer.freedesktop.org/documentation/tools/gst-launch.html?gi-language=cYes, you would run that command on VOXL2. That specific command pulls frames from
/dev/video22(the UVC camera), it tells it to expect YUY2 formatted frames (you can change this to your liking) and then it converts it to an RTSP video stream. You could modify the pipeline to instead write to a file instead of streaming.There is a ton of documentation on gstreamer out there that can help you out with tailoring the pipeline.
-
@Kris You can read more about how gstreamer and the
gst-launch-1.0command works here: https://gstreamer.freedesktop.org/documentation/tools/gst-launch.html?gi-language=cYes, you would run that command on VOXL2. That specific command pulls frames from
/dev/video22(the UVC camera), it tells it to expect YUY2 formatted frames (you can change this to your liking) and then it converts it to an RTSP video stream. You could modify the pipeline to instead write to a file instead of streaming.There is a ton of documentation on gstreamer out there that can help you out with tailoring the pipeline.
-
@Kris Apologies, I'm not sure if that will work on VOXL1. Do you have a hires mipi sensor on your VOXL? It would allow you to avoid a lot of trouble
@tom
No, I dont have a hires mipi sensor on my VOXL. I am using the TOF, Stereo, and Tracking sensors specifically for indoor flights.
I am just trying to record frames or video from a connected uvc camera while in flight.
I am also trying to set one of my stereo cameras as the QVIO instead of the tracking camera. Again this is just for indoor flights. I have also asked about this QVIO setup in this thread, but have not received a response other than pointing to the extrinsics ModalAi page. -
@Kris Apologies, I'm not sure if that will work on VOXL1. Do you have a hires mipi sensor on your VOXL? It would allow you to avoid a lot of trouble
@tom
The command you sent me earlier this week did not work on the VOXL platform. I tried variations on both our e-CAM83 and Aruducam IMX335 uvc camera modules.Could you please point me to a uvc camera that will work with the
voxl-uvc-server?
Our main goal is to connect a uvc camera to the Seeker and be able to capture frames or video (streaming is not necessary) and send them to an onboard SD card (possibly usingvoxl-logger.Would this Blue Robotics uvc module work? Meaning, is it capable of connecting to the
voxl-uvc-serverand be able to send frames and/or video to the onboard SD card usingvoxl-loggeron the VOXL1 Seeker Dev Drone? -
@Kris Apologies, I'm not sure if that will work on VOXL1. Do you have a hires mipi sensor on your VOXL? It would allow you to avoid a lot of trouble
@tom
I have also noticed that when I updated my platform to 0.9 the streamer.conf has changed.
Now our Arducam IMX335 is not even working (it had no problems streaming before).0.9 streamer.conf
{ "input-pipe": "hires", "bitrate": 1000000, "decimator": 2, "port": 8900, "rotation": 0 }3.8.0-0.7 streamer.conf
{ "conf-version":"1.3", "configuration": "hires", "uvc-generic": { "input": { "interface": "mpa", "mpa-camera": "uvc" }, "output": { "stream": { "rotation": 0, "width": 640, "height": 480, "decimator": 1, "bitrate": 1000000 } } }, "uvc-flir-boson": { "input": { "interface": "mpa", "mpa-camera": "uvc" }, "output": { "stream": { "rotation": 0, "width": 640, "height": 512, "decimator": 2, "bitrate": 1000000 } } }, "uvc-flir-lepton": { "input": { "interface": "mpa", "mpa-camera": "uvc" }, "output": { "stream": { "rotation": 0, "width": 160, "height": 120, "bitrate": 500000 } } }, "hires": { "input": { "interface": "mpa", "mpa-camera": "hires" }, "output": { "stream": { "rotation": 0, "width": 640, "height": 480, "decimator": 2, "bitrate": 1000000 } } }, "hires-logo": { "input": { "interface": "mpa", "mpa-camera": "hires" }, "output": { "stream": { "rotation": 0, "width": 640, "height": 480, "decimator": 2, "bitrate": 1000000 } }, "overlay": { "location": "/etc/modalai/modalai.png", "offset_x": -1, "offset_y": -1 } }, "stereo": { "input": { "interface": "mpa", "mpa-camera": "stereo" }, "output": { "stream": { "width": 640, "height": 960, "decimator": 2, "bitrate": 1000000 } } }, "tracking": { "input": { "interface": "mpa", "mpa-camera": "tracking" }, "output": { "stream": { "width": 640, "height": 480, "decimator": 2, "bitrate": 1000000 } } }, "dfs-disparity": { "input": { "interface": "mpa", "mpa-camera": "dfs_disparity" }, "output": { "stream": { "width": 640, "height": 480, "decimator": 2, "bitrate": 1000000 } } }, "qvio-overlay": { "input": { "interface": "mpa", "mpa-camera": "qvio_overlay" }, "output": { "stream": { "width": 640, "height": 544, "decimator": 2, "bitrate": 1000000 } } }, "tflite-overlay": { "input": { "interface": "mpa", "mpa-camera": "tflite" }, "output": { "stream": { "width": 640, "height": 480, "decimator": 2, "bitrate": 1000000 } } }, "hdmi-mpa": { "input": { "interface": "mpa", "mpa-camera": "v4l2" }, "output": { "stream": { "width": 640, "height": 360, "decimator": 2, "bitrate": 1000000 } } }, "gphoto2-mpa": { "input": { "interface": "mpa", "mpa-camera": "gphoto2" }, "output": { "stream": { "width": 640, "height": 360, "decimator": 2, "bitrate": 1000000 } } }, "video-test": { "input": { "interface": "test", "frame": { "width": 640, "height": 480, "format": "yuv420" } }, "output": { "stream": { "rotation": 0, "width": 640, "height": 480, "rate": 30, "bitrate": 1000000 } } }, "uvc-video": { "input": { "interface": "uvc", "device": "/dev/video0" }, "output": { "stream": { "rotation": 0, "width": 640, "height": 360, "rate": 15, "bitrate": 1000000 } } } } -
@Kris You can see supported format info here: https://gitlab.com/voxl-public/voxl-sdk/services/voxl-uvc-server/-/blob/master/src/main.c#L64
Another thing to try out is using gstreamer instead of voxl-uvc-server + voxl-streamer with a pipeline similar to the following:
gst-launch-1.0 v4l2src device=/dev/video2 ! video/x-raw,format=YUY2 ! videoconvert ! x264enc speed-preset=ultrafast tune=zerolatency ! rtph264pay name=pay0 ! udpsink host=192.168.1.97 port=8554The pipeline may need to be tweaked slightly but it's one I've used before for other UVC cameras that voxl-uvc-server was unhappy with
-
@Kris I don't have that specific webcam or a VOXL1 but with a different one and a VOXL2, all I have to do is run
voxl-uvc-server, see output below:voxl2:/$ voxl-uvc-server loading config file Creating new config file: /etc/modalai/voxl-uvc-server.conf ================================================================= width: 640 height: 480 fps: 30 pipe_name: uvc =================================================================I'm able to pull up the stream using voxl-portal (going to IP of my VOXL2 in browser)

Then alternatively I'm able to use this gstreamer command:
gst-launch-1.0 v4l2src device=/dev/video2 ! video/x-raw,format=YUY2 ! videoconvert ! x264enc speed-preset=ultrafast tune=zerolatency ! rtph264pay name=pay0 ! udpsink host=192.168.1.124 port=8554to pull up the video stream in QGC
-
@Kris I don't have that specific webcam or a VOXL1 but with a different one and a VOXL2, all I have to do is run
voxl-uvc-server, see output below:voxl2:/$ voxl-uvc-server loading config file Creating new config file: /etc/modalai/voxl-uvc-server.conf ================================================================= width: 640 height: 480 fps: 30 pipe_name: uvc =================================================================I'm able to pull up the stream using voxl-portal (going to IP of my VOXL2 in browser)

Then alternatively I'm able to use this gstreamer command:
gst-launch-1.0 v4l2src device=/dev/video2 ! video/x-raw,format=YUY2 ! videoconvert ! x264enc speed-preset=ultrafast tune=zerolatency ! rtph264pay name=pay0 ! udpsink host=192.168.1.124 port=8554to pull up the video stream in QGC
@tom
Thank you for your examples.I was asking about the C270 camera because @Eric-Katzfey had mentioned that he starts his camera testings with this model in order to locate where issues are coming from on other camera models.
I do appreciate your support.
I will continue to try different Gstreamer commands. -
@tom
I was able to stream the video from voxl-portal,voxl:~$ voxl-uvc-server -d Enabling debug messages voxl-uvc-server starting Image resolution 640x480, 30 fps chosen UVC initialized Device found Device opened uvc_get_stream_ctrl_format_size succeeded for format YUYV Streaming starting Got frame callback! frame_format = 3, width = 640, height = 480, length = 614400, ptr = (nil) * got image 30 * got image 60 * got image 90 * got image 120 * got image 150but I cannot get the Gstreamer to work for QGC.
Here is my ERROR;
voxl:~$ gst-launch-1.0 v4l2src device=/dev/video2 ! video/x-raw,format=YUY2 ! videoconvert ! omxh264enc ! rtph264pay name=pay0 ! udpsink host=192.168.110.152 port=8554 Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock ** ERROR:/opt/workspace/build/apq8096-le-1-0-1_ap_standard_oem.git/apps_proc/poky/build/tmp-glibc/work/armv7a-vfp-neon-oemllib32-linux-gnueabi/lib32-gstreamer1.0-omx/1.10.4-r0/gst-omx-1.10.4/omx/gstomxh264enc.c:532:gst_omx_h264_enc_get_caps: code should not be reached AbortedMaybe its a CAPS issue?
I had to change x264 to omxh264, and had to completely remove
speed-preset=ultrafast tune=zerolatencyfrom the command because it wasnt playing well with VOXL1. -
@Kris Well now that you have
voxl-uvc-serverworking you should be able to use voxl-streamer on top of that to get a stream going@tom
Yes, I am able to get the stream working with thevoxl-streamer -i uvccommand,
but I am trying to get a Gstreamer command working so that I can build a pipeline to record the frames.voxl:~$ voxl-streamer -i uvc ERROR: object missing input-pipe WARNING: Failed to get default pipe name from configuration file ERROR: object missing bitrate WARNING: Failed to get default bitrate from configuration file Camera server Connected Stream available at rtsp://127.0.0.1:8900/liveGstreamer;
voxl:~$ show-video-device-info.sh /dev/video2: UVC Camera (046d:0825) 046d:0825 voxl:~$ sudo gst-launch-1.0 v4l2src device=/dev/video2 ! video/x-raw,width=640,height=480,format=YUY2 ! videoconvert ! omxh264enc ! rtph264pay name=pay0 ! udpsink host=192.168.110.152 port=8554 Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock ** ERROR:/opt/workspace/build/apq8096-le-1-0-1_ap_standard_oem.git/apps_proc/poky/build/tmp-glibc/work/armv7a-vfp-neon-oemllib32-linux-gnueabi/lib32-gstreamer1.0-omx/1.10.4-r0/gst-omx-1.10.4/omx/gstomxh264enc.c:532:gst_omx_h264_enc_get_caps: code should not be reachedor without width & height;
voxl:~$ show-video-device-info.sh /dev/video2: UVC Camera (046d:0825) 046d:0825 voxl:~$ sudo gst-launch-1.0 v4l2src device=/dev/video2 ! video/x-raw,format=YUY2 ! videoconvert ! omxh264enc ! rtph264pay name=pay0 ! udpsink host=192.168.110.152 port=8554 Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock ** ERROR:/opt/workspace/build/apq8096-le-1-0-1_ap_standard_oem.git/apps_proc/poky/build/tmp-glibc/work/armv7a-vfp-neon-oemllib32-linux-gnueabi/lib32-gstreamer1.0-omx/1.10.4-r0/gst-omx-1.10.4/omx/gstomxh264enc.c:532:gst_omx_h264_enc_get_caps: code should not be reached
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login
