Frame rate

James jam at tigger.ws
Wed Oct 26 07:30:03 UTC 2022


If anyone can point me, thanks lots

I have a pipeline (that works) from v4lsrc

gst-launch-1.0 $@ v4l2src device=/dev/video0 ! \
        video/x-raw,width=1920,height=1080,framerate=5/1! \
        videoconvert ! \
        ...

I have 2 usb capture cards.
Without specifing framerate a magewell card gets 2 fps, an Amazon special 5 fps.
Using OpenBroadcastStudio both cards will record at 1080p30 or 1080p60. (and ffprobe confirms)
If I specify a not-native framerate I get v4lsrc internal error.

Easy methought, each card has 2 endpoints, I'll spy with wireshark. Wireshark says that *nothing* happens of the 2nd end point !

Since OBS can tell either card what framerate to use I speculate it is a standard communication. (or it happens at the v4l point

Spelunking the src is a huge task.

Much looking, a gstreamer bit I do not grok

$ v4l2-ctl
. . .
Streaming Parameters Video Capture:
	Capabilities     : timeperframe
	Frames per second: 30.000 (30/1)
	Read buffers     : 0

So I modify my above working pipeline to say framerate=30/1

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming stopped, reason not-negotiated (-4)
Execution ended after 0:00:00.000627298
Setting pipeline to NULL ...
Freeing pipeline ...

I am stumped, help please
James


More information about the gstreamer-devel mailing list