VOXL camera configuration
-
Keeps failing to find a usable video sink.
voxl:~$ show-video-device-info.sh /dev/video2: e-CAM83_USB 2560:c184 /dev/video3: e-CAM83_USB 2560:c184 voxl:~$ gst-launch-1.0 v4l2src device=/dev/video3 ! videoconvert ! autovideosink Setting pipeline to PAUSED ... ERROR: Pipeline doesn't want to pause. WARNING: from element /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0: Resource not found. Additional debug info: /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-plugins-good/1.10.4-r0/gst-plugins-good-1.10.4/gst/autodetect/gstautodetect.c(347): gst_auto_detect_find_best (): /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0: Failed to find a usable video sink ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could not open device '/dev/video3' for reading and writing. Additional debug info: /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-plugins-good/1.10.4-r0/gst-plugins-good-1.10.4/sys/v4l2/v4l2_calls.c(625): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: system error: Device or resource busy Setting pipeline to NULL ... Freeing pipeline ... voxl:~$ gst-launch-1.0 v4l2src device=/dev/video2 ! videoconvert ! autovideosink Setting pipeline to PAUSED ... ERROR: Pipeline doesn't want to pause. WARNING: from element /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0: Resource not found. Additional debug info: /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-plugins-good/1.10.4-r0/gst-plugins-good-1.10.4/gst/autodetect/gstautodetect.c(347): gst_auto_detect_find_best (): /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0: Failed to find a usable video sink ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could not open device '/dev/video2' for reading and writing. Additional debug info: /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-plugins-good/1.10.4-r0/gst-plugins-good-1.10.4/sys/v4l2/v4l2_calls.c(625): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: system error: Device or resource busy Setting pipeline to NULL ... Freeing pipeline ... voxl:~$
Output when debug command is used.
voxl:~$ GST_DEBUG=3 gst-launch-1.0 v4l2src device=/dev/video3 ! videoconvert ! autovideosink Setting pipeline to PAUSED ... 0:00:00.229741613 4689 0xdf500 WARN autodetect gstautodetect.c:347:gst_auto_detect_find_best:<autovideosink0> warning: Failed to find a usable video sink 0:00:00.277135238 4689 0xdf500 WARN v4l2 v4l2_calls.c:625:gst_v4l2_open:<v4l2src0> error: Could not open device '/dev/video3' for reading and writing. 0:00:00.277213207 4689 0xdf500 WARN v4l2 v4l2_calls.c:625:gst_v4l2_open:<v4l2src0> error: system error: Device or resource busy ERROR: Pipeline doesn't want to pause. WARNING: from element /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0: Resource not found. Additional debug info: /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-plugins-good/1.10.4-r0/gst-plugins-good-1.10.4/gst/autodetect/gstautodetect.c(347): gst_auto_detect_find_best (): /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0: Failed to find a usable video sink ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could not open device '/dev/video3' for reading and writing. Additional debug info: /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-plugins-good/1.10.4-r0/gst-plugins-good-1.10.4/sys/v4l2/v4l2_calls.c(625): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: system error: Device or resource busy Setting pipeline to NULL ... Freeing pipeline ...
-
@Kris You can't use autovideosink on VOXL because it doesn't have a display
-
@Kris Maybe try fakesink instead?
-
@Eric-Katzfey
I have tried both fakesink and playbin.
Neither of them work either.
Has anyone gotten gstreamer to successfully work on VOXL1? -
@Eric-Katzfey
I also have another UVC camera, but it only outputs MJPG (compressed) and YUY2 (uncompressed 640x480 30fps) formats.It works for streaming, but I am trying to record the video to the Seeker’s SD card.
Is there a way to do this with Gstreamer or a similar program? -
@tom
Could this be the reason why no devices are found when I usegst-device-monitor-1.0 Video/Source
on the VOXL1? -
I see that the VOXL1 has the
gst-plugins-good
.
Is it possible to also add thegst-plugins-bad
andgst-plugins-ugly
? -
@Kris We use GStreamer in our voxl-streamer application. It does work on VOXL1.
-
@Eric-Katzfey
Ok, thank you for the confirmation. -
@Eric-Katzfey
If possible, could you please provide me with a VOXL1 working pipeline (streaming or recording) using any UVC camera of your choice? -
@Kris That's not how it works on VOXL1. The voxl-uvc-server application places frames into an MPA pipe and the voxl-streamer application (based on gstreamer) reads those frames and processes them for output using RTSP. However, I do believe that I did try command line gst-launch-1.0 style pipelines with UVC cameras in the past and they worked. I don't have an example of one though. You may want to start with one of our supported UVC cameras first and then try to get your particular UVC camera working. I always start with the Logitech C270. We list the specific cameras that we support because each one caused us some issues and required code changes to make it work. We even had to fork the libuvc library in order to make changes to that to get some of the cameras working properly.
-
@Eric-Katzfey
Ok, I understand.
Thank you for all your help and support with this issue.
I will try one of your tested & supported UVC cameras. -
@Eric-Katzfey
I bought the Logitech C270 and tried testing it with some Gstreamer commands.
So far I have been able to use it on my Linux PC with these commands.Connected to PC and viewing video;
gst-launch-1.0 -v v4l2src ! video/x-raw,format=YUY2 ! videoconvert ! autovideosink
Connected to PC and recording to PC;
gst-launch-1.0 v4l2src device=/dev/video0 ! image/jpeg,width=640,height=480,framerate=30/1 ! jpegdec ! x264enc ! qtmux ! filesink location=C270.mp4 -e
However, when I connect the C270 to the Seeker I cannot get any of these to work.
I have tried different video devices 0-3 and I have also substituted theautovideosink
withfakesink
but these changes are still not working.Could you please show me a Gstreamer example for this Logitech C270 camera that works on the Seeker?
I would like to either stream, record, or stream+record (possibly using tee) the video using gst-launch-1.0.
Thank you