UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Adventurer
Adventurer
457 Views
Registered: ‎10-18-2017

See3CAM_CU30_CHL_TC_BX reVision Feedthrough 2018.2

Jump to solution

Hello, I am using the 2018.2 reVision Stack for ZCU104 eval board. The board came with a e-con Systems See3CAM_CU30_CHL_TC_BX camera. Currently, I am trying to set up a gstreamer pipeline to stream video from the camera out to an HDMI monitor. 

I am trying to follow this guide which was developed for the 2017.4 reVision Stack opticalflow application for ZCU104 provided by econ-Systems. 

https://www.e-consystems.com/blog/camera/getting-started-with-xilinx-zynq-ultrascale-mpsoc-zcu104-evaluation-kit-and-see3cam_cu30_chl_tc_bx

Their file copying commands are as listed

$ cd /media/card
$ cp libopticalflow.so /usr/lib
$ cp libgstsdxopticalflow.so /usr/lib/gstreamer-1.0
$ cp libgstsdxbase.so /usr/lib/gstreamer-1.0
$ cp libgstsdxallocator.so /usr/lib/gstreamer-1.0

Those listed in the github for the reVision stack for opticalflow

# cp lib/libopticalflow.so /usr/lib
# cp gstreamer-1.0/libgstsdxopticalflow.so /usr/lib/gstreamer-1.0
# cp lib/libgstsdxbase.so /usr/lib/gstreamer-1.0
# cp lib/libgstsdxallocator.so /usr/lib/gstreamer-1.0

These more or less perform the same action.

I then run

video_cmd -S 

and I get almost the same list as they do in the econ Systems guide

​VIDEO SOURCE ID VIDEO DEVNODE
HDMI Input 0 /dev/video2
USB Webcam 1 /dev/video4
Virtual Video De 2 /dev/video0

But when I run this to setup the USB webcam 

$: video_cmd -s 1 -i 1920×1080@UYVY -X

I get the output

Invalid size '1920×1080@UYVY'

Then I run this to set up 

$: video_cmd -d 0 -o 1920×1080@UYVY &

and I get 

invalid output specifier '1920×1080@UYVY'

Has anyone gotten the econSystems See3CAM_CU30_CHL_TC_BX working on 2018.2 reVision Stack? Thanks.

0 Kudos
1 Solution

Accepted Solutions
Adventurer
Adventurer
245 Views
Registered: ‎06-19-2017

Re: See3CAM_CU30_CHL_TC_BX reVision Feedthrough 2018.2

Jump to solution

Hi @johnfrye11,

First, check whether the camera is working using the following pipeline. Also, when the HDMI is used it is best to set your overlay or the render rectangle. Check the following plugin commands. Now, if this works add your Optical flow plugin and check.

For capture,

gst-launch-1.0 v4l2src device=/dev/video4 io-mode="dmabuf" ! "video/x-raw,format=UYVY,width=1920,height=1080,framerate=30/1" ! fpsdisplaysink video-sink="kmssink plane-id=31 bus-id=b00c0000.v_mix fullscreen-overlay=false render-rectangle=<0,0,1920,1080>" sync=false text-overlay=false -v

For full screen ,

gst-launch-1.0 v4l2src device=/dev/video4 io-mode="dmabuf" ! "video/x-raw,format=UYVY,width=1920,height=1080,framerate=30/1" ! fpsdisplaysink video-sink="kmssink plane-id=31 bus-id=b00c0000.v_mix fullscreen-overlay=true" sync=false text-overlay=false -v

Thanks 

Kumar P G

 

6 Replies
Visitor sury@
Visitor
359 Views
Registered: ‎05-22-2018

Re: See3CAM_CU30_CHL_TC_BX reVision Feedthrough 2018.2

Jump to solution

Hi @johnfrye11 

If you are using HDMI as your display. Please configure your HDMI using the following command.

$ video_cmd -d 1 -o 1920x1080@UYVY &

Run the following gstreamer command and test if the application works

$ gst-launch-1.0 v4l2src device=/dev/video4 io-mode=dmabuf ! \

 "video/x-raw, width=1920, height=1080, format=UYVY" ! sdxopticalflow filter-mode=1 ! \

 queue ! kmssink bus-id=b00c0000.v_mix plane-id=31

Note: The e-con Systems blog is about using the camera with the Display port monitor.

 

 

0 Kudos
Adventurer
Adventurer
345 Views
Registered: ‎10-18-2017

Re: See3CAM_CU30_CHL_TC_BX reVision Feedthrough 2018.2

Jump to solution

When I try to run this command, this is what I am seeing

 

root@xilinx:~# video_cmd -S
    VIDEO SOURCE        ID         VIDEO DEVNODE
      HDMI Input        0       /dev/video2
      USB Webcam        1       /dev/video4
Virtual Video De        2       /dev/video0
root@xilinx:~# video_cmd -d 1 -o 1920x1080@UYVY &
[1] 2487
root@xilinx:~# ERROR: Query DV timings failed: Link has been severed
/dev/video2

[1]+ Done video_cmd -d 1 -o 1920x1080@UYVY

When I attempt to run the output command, the screen remains blue. Note however that when the system boots, the HDMI TV I am using is receiving a signal, it is just a blue screen, so there is a connection to the HDMI output. Any ideas on that?

Thanks.

 

0 Kudos
Visitor sury@
Visitor
316 Views
Registered: ‎05-22-2018

Re: See3CAM_CU30_CHL_TC_BX reVision Feedthrough 2018.2

Jump to solution

hi @johnfrye11

Please run the following gstreamer command 

$ gst-launch-1.0 v4l2src device=/dev/video4 io-mode=dmabuf ! \

 "video/x-raw, width=1920, height=1080, format=UYVY" ! sdxopticalflow filter-mode=1 ! \

 queue ! kmssink bus-id=b00c0000.v_mix plane-id=31

Note: video_cmd is used to configure the source and display. The above gstreamer command is used to launch the camera 

0 Kudos
Adventurer
Adventurer
269 Views
Registered: ‎10-18-2017

Re: See3CAM_CU30_CHL_TC_BX reVision Feedthrough 2018.2

Jump to solution

sury@

I understand that. I run the command, after having run the commands listed above with the listed output, and get this output.

 

root@xilinx:~# gst-launch-1.0 v4l2src device=/dev/video4 io-mode=dmabuf ! \
> "video/x-raw, width=1920, height=1080, format=UYVY" ! sdxopticalflow filter-mode=1 ! \
> queue ! kmssink bus-id=b00c0000.v_mix plane-id=31
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock

But I do not see anything except a blue screen on the HDMI output. 

Not sure if you have any idea why that might be happening. Thanks.

0 Kudos
Adventurer
Adventurer
246 Views
Registered: ‎06-19-2017

Re: See3CAM_CU30_CHL_TC_BX reVision Feedthrough 2018.2

Jump to solution

Hi @johnfrye11,

First, check whether the camera is working using the following pipeline. Also, when the HDMI is used it is best to set your overlay or the render rectangle. Check the following plugin commands. Now, if this works add your Optical flow plugin and check.

For capture,

gst-launch-1.0 v4l2src device=/dev/video4 io-mode="dmabuf" ! "video/x-raw,format=UYVY,width=1920,height=1080,framerate=30/1" ! fpsdisplaysink video-sink="kmssink plane-id=31 bus-id=b00c0000.v_mix fullscreen-overlay=false render-rectangle=<0,0,1920,1080>" sync=false text-overlay=false -v

For full screen ,

gst-launch-1.0 v4l2src device=/dev/video4 io-mode="dmabuf" ! "video/x-raw,format=UYVY,width=1920,height=1080,framerate=30/1" ! fpsdisplaysink video-sink="kmssink plane-id=31 bus-id=b00c0000.v_mix fullscreen-overlay=true" sync=false text-overlay=false -v

Thanks 

Kumar P G

 

Adventurer
Adventurer
235 Views
Registered: ‎10-18-2017

Re: See3CAM_CU30_CHL_TC_BX reVision Feedthrough 2018.2

Jump to solution

@kumar.pg

The second command you provided does exactly what I want. It sounds like both commands are made to debug so if you are interested, here is the output,

root@xilinx:~# gst-launch-1.0 v4l2src device=/dev/video4 io-mode="dmabuf" ! "video/x-raw,format=UYVY,width=1920,height=1080,framerate=30/1" ! fpsdisplaysink video-sink="kmssink plane-id=31 bus-id=b00c0000.v_mix fullscreen-overlay=false render-rectangle=<0,0,1920,1080>" sync=false text-overlay=false -v
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstKMSSink:kmssink0: display-width = 1360
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstKMSSink:kmssink0: display-height = 768
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstKMSSink:kmssink0: sync = false
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstKMSSink:kmssink0.GstPad:sink: caps = video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink: caps = video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstKMSSink:kmssink0: sync = false
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 13, dropped: 0, current: 25.38, average: 25.38
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 29, dropped: 0, current: 30.00, average: 27.74
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 45, dropped: 0, current: 30.00, average: 28.50
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 61, dropped: 0, current: 30.00, average: 28.88
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 76, dropped: 0, current: 30.00, average: 29.09
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 92, dropped: 0, current: 30.00, average: 29.25

And the second command, which outputs camera to the screen

root@xilinx:~# gst-launch-1.0 v4l2src device=/dev/video4 io-mode="dmabuf" ! "video/x-raw,format=UYVY,width=1920,height=1080,framerate=30/1" ! fpsdisplaysink video-sink="kmssink plane-id=31 bus-id=b00c0000.v_mix fullscreen-overlay=true" sync=false text-overlay=false -v
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstKMSSink:kmssink0: display-width = 1360
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstKMSSink:kmssink0: display-height = 768
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstKMSSink:kmssink0: sync = false
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstKMSSink:kmssink0.GstPad:sink: caps = video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink: caps = video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstKMSSink:kmssink0: sync = false
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 14, dropped: 0, current: 27.53, average: 27.53
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 30, dropped: 0, current: 30.00, average: 28.80
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 46, dropped: 0, current: 30.00, average: 29.20
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 62, dropped: 0, current: 30.00, average: 29.41
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 78, dropped: 0, current: 30.00, average: 29.53
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 94, dropped: 0, current: 30.00, average: 29.61

Thanks. 

0 Kudos