Unable to trans size video

Hello devs,

Please I am having a challenge trying to reduce the size of a video.

I am using the command below

gst-launch-1.0.exe filesrc location=/path/to/mp4 ! qtdemux name=d d.video_0 ! h264parse ! avdec_h264 ! videoconvert ! videoscale ! video/x-raw,width=1280,height=720,framerate=15/1 ! autovideosink

But I am getting the following error:

../gst-plugins-good-1.22.6/gst/isomp4/qtdemux.c(6976): gst_qtdemux_loop (): /GstPipeline:pipeline0/GstQTDemux:d:

streaming stopped, reason not-linked (-1)

WARNING: from element /GstPipeline:pipeline0/GstQTDemux:d: Delayed linking failed.

ERROR: pipeline doesn't want to preroll.

Additional debug info:

gst/parse/grammar.y(855): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstQTDemux:d:

failed delayed linking pad video_0 of GstQTDemux named d to some pad of GstH264Parse named h264parse0

Setting pipeline to NULL ...

Freeing pipeline ...

A quick note:

If I remove the videoconvert, videoscale & caps-filter from the pipeline it works.

I am just struggling to understand why the demux element cannot link to the next element when they are caps compatible. I know I am missing out on something but I can’t seem to figure it out.


Kind regards.

If you are changing the framerate in your capsfilter, then you also need a videorate element in your pipeline.

Perfect! Thanks a lot. It works as intended.