How to change framerate in REALTIME when video is PLAYING?
Andrey Nechypurenko
andreynech at googlemail.com
Thu Mar 10 00:58:23 PST 2011
Hi Tom,
> I use
> gst-launch filesrc "location=video/1.MPG" ! decodebin ! videorate !
> video/x-raw-yuv, width=640,height=480,framerate=25/1 ! ffmpegcolorspace !
> jpegenc ! multipartmux ! tcpserversink host=192.168.2.1 port=$portNumber
> to stream a video and can change the video frame rate in this way.
> But in this way the frame rate is fixed (i.e., framerate=25/1 here).
>
> I want to change the framerate in REALTIME when video is PLAYING ---
> during the streaming of this video, I can change the framerate anytime I
> want.
Then you need to modify the pipeline from your application. In
particular, you need to adjust the caps filter. Here you can find an
example how to do it:
http://gitorious.org/veter/veter/blobs/master/src/vehicle/VideoSenderThread.cpp#line264
It changes width and height property of the named (qos-caps) caps
filter by pausing the videoscale element in front of it, updating
width and height properties and then un-pausing the videoscale. So in
your case you can update the framerate property. However, as Kapil
pointed out to work properly, the downstream elements should be able
to re-negotiate the new format.
HTH,
Andrey.
More information about the gstreamer-devel
mailing list