Re: Internal Data Stream Error Occurs When Adding Two Caps Filters with Different Resolutions in Webcam GStreamer Pipeline Using Tee

Nicolas Dufresne via gstreamer-devel <[email protected]>
Newsgroups gmane.comp.video.gstreamer.devel
Message-ID <[email protected]>
Le jeudi 13 juillet 2023 à 19:46 +0200, Florian Echtler via gstreamer-devel a
écrit :
> Hello Sulthan,
> 
> I'm pretty certain this won't be possible without videoscale & friends.
> 
> Reason: almost all V4L2 cameras are configured to stream a single resolution at 
> the hardware level, and even if the camera would be capable of delivering two 
> streams at different resolutions, I'm nearly 100% sure the V4L2-Gstreamer path 
> won't be able to deliver that. Your only option, as far as I can tell, is to get 
> the larger resolution from the device directly and scale it down.

With exception of uvch264src, but finding compatible cameras is pretty hard
these days.

> 
> (*) Should you happen to use a Raspberry Pi camera, which can do separate 
> preview and main streams, then you might have a shot by using the libcamera 
> stack. But for generic V4L2 devices, I don't think you can avoid the software 
> scaler.

Yes, PI can deliver multiple streams, use libcamerasrc for that.

regards,
Nicolas

> 
> Best, Florian
> 
> On 13.07.23 19:37, Sulthan Amanu via gstreamer-devel wrote:
> > Hi Team,
> > 
> > I have encountered an issue while
> > creating a GStreamer pipeline with a webcam source and two caps filters using 
> > the tee element. The pipeline is designed to apply different resolutions to the 
> > video stream. Below is an example of the pipeline:
> > 
> > gst-launch-1.0 -e v4l2src device=/dev/video0 ! \
> >      tee name=t ! \
> >          queue ! \
> >          videoconvert ! \
> >          capsfilter caps="video/x-raw, width=640, height=480" ! \
> >          autovideosink t. ! \
> >          queue ! \
> >          videoconvert ! \
> >          capsfilter caps="video/x-raw, width=1280, height=720" ! \
> >          autovideosink
> > 
> > 
> > However, when executing the pipeline, I encountered the following error message:
> > 
> > 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(3055): gst_base_src_loop (): 
> > /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
> > streaming stopped, reason not-negotiated (-4)
> > EOS on shutdown enabled -- waiting for EOS after Error
> > Waiting for EOS...
> > 
> > 
> > I kindly request your assistance in resolving this issue and achieving the 
> > desired behavior without utilizing the *videoscale , videoconvertscale, other 
> > frame resize element. And I need to orignal data of both resolution.*
> > *
> > *
> > Issue link - 
> > https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2808#note_1999618 
> > <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2808#note_1999618>
> > *
> > *
> > Regards,
> > Sulthan
> 
> -- 
> SENT FROM MY DEC VT50 TERMINAL
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.