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 >