Gstreamer v4l2src streaming pipeline

We are using li-jetson-kit-imx274cs camera kit with L4T R28.1 and have installed the corresponding driver. Everything is working fine with nvcamerasrc, but not with v4l2src which we would prefer to use due to less converting between formats and therefore less latency.

We have tried the following pipe from “Accelerated GStreamer User Guide” :

gst-launch-1.0 v4l2src device="/dev/video0" ! "video/x-raw, width=640, height=480, format(string)I420" ! xvimagesink -e

, but gets the following error message:

ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2948): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming task paused, reason not-negotiated (-4)
EOS on shutdown enabled – waiting for EOS after Error
Waiting for EOS…
Got EOS from element “pipeline0”.
EOS received - stopping pipeline…

In addition we want to use appsink as well. Therefore we were wondering if someone have any working pipes with the v4l2src?

I have no experience with this camera, but I’d suspect I420 is not the right format for v4l2src (it is ok with nvcamerasrc).

For checking available formats of your camera from v4L api, use:

#If not yet installed, install v4l-utils
sudo apt-get install v4l-utils

v4l2-ctl --list-formats-ext

For example, if it shows RGB format, you may change the caps :

gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw, width=640, height=480, format(string)<b>RGB</b>' ! xvimagesink -e

I would suspect the whether IMX274 can bypass the ISP. Since it conly support bayer format, which is not supported in following modules.

Hi pin,
The imx274 module cannot bypass Tegra ISP engine and you have to use nvcamerasrc. Or you may use Argus in MMAPIs

Besides, we have new nvarguscamerasrc from r28.2.1