Internal Data Stream Error Occurs When Adding Two Caps Filters with Different Resolutions in Webcam GStreamer Pipeline Using Tee
Nicolas Dufresne
nicolas at ndufresne.ca
Thu Jul 13 19:10:16 UTC 2023
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
>
More information about the gstreamer-devel
mailing list