I have a PGR USB3 camera that I am trying to tie into a gstreamer pipeline on my TX1. The camera is working in Point Grey’s Flycapture2 SDK and gstreamer is working for {some of} the example pipelines in the developer’s manual. I am just not sure how to tie them together.
Thanks,
Dan
Hi Dan,
Are you able to run
$ export DISPLAY=:0
$ gst-launch-1.0 v4l2src device=/dev/video1 ! 'video/x-raw,format=I420' ! xvimagesink
Please replace /dev/video1 with real device node and I420 with real camera format.
Thanks for the suggestion. I tried:
$ export DISPLAY=:0
$ gst-launch-1.0 v4l2src device=/dev/video1 ! 'video/x-raw,format=RGB3' ! xvimagesink -e
$ gst-launch-1.0 v4l2src device=/dev/video1 ! 'video/x-raw,format=(string)RGB3' ! xvimagesink -e
$ gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw,format=(string)RGB3' ! xvimagesink -e
$ gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw,format=RGB3, width=680, height=420' ! xvimagesink -e
$ gst-launch-1.0 v4l2src "device=/dev/video0" ! 'video/x-raw,format=RGB3' ! xvimagesink -e
…plus a lot of other combinations of device node and camera formats…
I always got the following error:
“WARNING: erroneous pipeline: could not link v4l2src0 to xvimagesink0”
I then tried:
$ gst-launch-1.0 v4l2src "device=/dev/video0" ! 'video/x-raw, format=I420' ! xvimagesink -e
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Cannot identify device '/dev/video0'.
Additional debug info:
v4l2_calls.c(606): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
system error: No such file or directory
Setting pipeline to NULL ...
Freeing pipeline ...
How do I determine the device node? Since the camera must be controlled by Nvidia software (I tried it with flycapture2 both running and not running), I think the device node may be non-standard. Currently, my camera produces YUV422 which I hope is compatible with I420…
I found a git repo by realdealneil [url]https://github.com/realdealneil/gstreamer-point-grey-app-src[/url] that has some code to incorporate a point grey camera with gstreamer on the TX1 (it works BTW!) But I don’t think it is possible to write a simple pipeline that can pick up one of these cameras.
Hi Dan,
Per http://gstreamer-devel.966125.n4.nabble.com/Query-problem-using-format-RGB3-in-caps-filter-td4669021.html
It is called RGB in gstreamer.
Please try
gst-launch-1.0 v4l2src device=/dev/video1 ! 'video/x-raw,format=RGB' ! videoconvert ! xvimagesink
Thanks, but I still don’t think it is possible to set up a pipeline to work directly with a point grey camera. I did get the appsrc plugin to work with the point grey C code. The traceback from the pipeline provided is:
gst-launch-1.0 v4l2src device=/dev/video1 ! 'video/x-raw,format=RGB' ! xvimagesink -e
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Cannot identify device '/dev/video1'.
Additional debug info:
v4l2_calls.c(606): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
system error: No such file or directory
Setting pipeline to NULL ...
Freeing pipeline ...
I guess the camera doesn’t take up one of the device nodes. I tried it with the flycapture gui both running and not.
Hi Dan,
I meet the same problem with you. And I can use “v4l2-ctl -d /dev/video0 -w --verbose --set-fmt-video=width=1077,height=788,pixelformat=RGB --set-ctrl bypass_mode=0 --stream-mmap --stream-count=1 --stream-to=test” capture camera video. But when I use “gst-launch-1.0 v4l2src device=/dev/video1 ! ‘video/x-raw,format=RGB’ ! videoconvert ! xvimagesink”. Application put the same log as yours. Did you fix this problem?
My email"shen.tong@edw.cn". Hope your response.
Not sure but it looks like a typo in device node:
v4l2-ctl -d /dev/video0
gst-launch-1.0 v4l2src device=/dev/video1