gst-launch-1.0 v4l2src device="/dev/video0" ! tee name=t ! queue ! v4l2sink device=/dev/video8 t. ! queue ! v4l2sink device=/dev/video9
this command is able to run on jetson nano but not on Jetson Orin Nano, it reports:
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming stopped, reason not-negotiated (-4)
Execution ended after 0:00:00.225181056
Setting pipeline to NULL ...
Freeing pipeline ...
Thanks for providing the output.
It seems like the pipeline is not being to negotiate the CAPS between v4l2src and the t element.
However, it might be cause because a compatibility issue between the caps of the 2 v4l2sink elements and the v4l2src itself.
Would it be possible for you to run the following tests?
gst-launch-1.0 v4l2src device="/dev/video0" ! tee name=t ! queue ! fakesink t. ! queue ! fakesink
All three commands executes successfully, I haven’t check the output result, but it should be fine, thank you very much!
FYI, video8&9 are virtual devices created by v4l2loopback
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
GST_ARGUS: Creating output stream
(Argus) Error BadParameter: (propagating from src/eglstream/FrameConsumerImpl.cpp, function initialize(), line 89)
(Argus) Error BadParameter: (propagating from src/eglstream/FrameConsumerImpl.cpp, function create(), line 44)
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, threadInitialize:320 Failed to create FrameConsumer
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, threadFunction:241 (propagating)
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, waitRunning:203 Invalid thread state 3
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:806 (propagating)
Got EOS from element "pipeline0".
Execution ended after 0:00:00.092026816
Setting pipeline to NULL ...
Freeing pipeline ...
Full log can be found here: gstreamer.log (131.5 KB)
The problem with the last pipeline you share I believe has to do with the fact that you are trying to use nvarguscamerasrc to capture from /dev/video0, which according to your v4l2-ctl --list-formats-ext only provides YUYV which is an unsupported format by nvagurscamerasrc, which only supports NV12.
regards,
Andrew
Embedded Software Engineer at ProventusNova
Hi @proventusnova
I still wonder if I can do the manipulation with gstreamer, thanks!
My end goal is using gstreamer split 2 different cameras into 4 streams(one camera for 2 streams), and using those streams to do some AI detection, I have done the imx219 one, I want to know if I can manipulate video with python code or same result using gstreamer.
If you need to run inference on a Jetson using GStreamer, I would suggest you to research Deepstream.
Now, to punctually answer your questions:
Yes, you can manipulate video with python code. You can use the appsink element with a GStreamer pipeline to get the buffers into python, grab them with OpenCV and do any processing you need.
There is also the option of writing your GStreamer plugin, which you can write even in python if you want, where you can have all your pre-processing logic.
regards,
Andrew
Embedded Software Engineer at ProventusNova
Thanks a lot! I would search Deepstream and appsink, GStreamer plugin won’t be good choice for me since I am not familiar with C/C++ programming. Is there anything I can do to return your help? Maybe a cup of coffee or contributing to the community?
Just as a quick hint, you can code GStreamer elements on Python too!! So you are not limited on that regard.
Also if at some point you need help coding your own GStreamer solution or working on other part of your project, please do not hesitate to reach out, we would love to help.
Last but not least, thanks a lot, its really nice of you to want to return the help. If you want to help us a bit, maybe you could helps us subscribing and sharing our LinkedIn page, its new and we are trying to grow our following: