problems with changing frame rate with videorate element
Andres Gonzalez
andres.agoralabs at gmail.com
Fri Apr 6 21:12:19 UTC 2018
Hi,
I have a pipeline like this:
filesrc --> videoparse --> videoconvert --> videorate --> codec, mux,
udpsink etc
The filesrc reads raw YUV files and then the pipeline streams them to
various devices for testing purposes. I want to be able to control the
framerate dynamically in realtime. So I am trying to use videorate to simply
drop some raw YUV frames to reduce the effective framerate before the frames
even get down stream to the encoder/mux/udpsink. I initialize the pipeline
with the original framerate of the YUV file and that will be the maximum
framerate. The videorate element has a property "drop-only" and "max-rate"
so I just set the max-rate to the desired reduced framerate.
I am getting the following warnings and then an EOS:
basetransform
gstbasetransform.c:1414:gst_base_transform_setcaps:<VideoRate-100> transform
could not transform video/x-raw, format=(string)I420, width=(int)720,
height=(int)480, interlace-mode=(string)progressive,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg,
colorimetry=(string)bt601, framerate=(fraction)30/1 in anything we support
WARN basetransform
gstbasetransform.c:1474:gst_base_transform_reconfigure:<VideoRate-100>
warning: not negotiated
WARN basetransform
gstbasetransform.c:1474:gst_base_transform_reconfigure:<VideoRate-100>
warning: not negotiated
WARN basesrc gstbasesrc.c:2948:gst_base_src_loop:<VideoFileSrc-100> error:
Internal data flow error.
WARN basesrc gstbasesrc.c:2948:gst_base_src_loop:<VideoFileSrc-100> error:
streaming task paused, reason not-negotiated (-4)
I have used the videorate element before to just drop frames if the max-rate
was lower than the actual framerate. So I am confused as to why the pipeline
is now attempting to reconfigure the caps. If I have a pipeline set for a
framerate of 30 fps, and then set the front-end videorate max-rate to 20
fps, I thought the videorate would just drop the extra frames (assuming
"drop-only" is set to true).
All I need to do is adjust the framerate dynamically from a maximum value
before it gets to the encoder and down stream elements. This is just for
testing purposes so I don't care how the reduced-framerate video will appear
jerky, I am just testing how my target devices handle different framerates.
Thanks,
-Andres
--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
More information about the gstreamer-devel
mailing list