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/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Use a capsfilter with only the framerate between videorate and codec.
something like "video/x-raw,framerate=(fraction)30/1". PS: Even though drop-only is said to default to TRUE. I had the experience that I had to set it explicitly. -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Administrator
|
Add capsfilter element after the videorate and dynamically modify the "caps"
property ~BO -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |