Re: Changing Playback rate with Gstreamer?
Tobias Rapp via gstreamer-devel <[email protected]> Fri, 6 Oct 2023 09:16:47 +0200
| Newsgroups | gmane.comp.video.gstreamer.devel |
|---|---|
| Organization | NOA GmbH |
| Message-ID | <[email protected]> |
Hi, just want to add that the "gst-play-1.0" tool which is distributed with the library allows to change the playback rate while playing using the +/- keys. Internally it uses a seek event sent to the playbin element, as mentioned by Michael. For an implementation example you can take a look at function "play_do_seek" in gst-play.c <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-base/tools/gst-play.c>. Regards, Tobias On 05/10/2023 16:55, Michael Gruner via gstreamer-devel wrote: > Hi Will > > Yes the videorate can do what you want. Set the “rate” property to 2.0 > > Videorate serves two purposes: > 1. control the framerate but maintain the playback speed (most > documented usage) > 2. vary the playback speed (using the rate property) > > If you want more flexibility than videorate can offer you will need to > send a seek event. This allows you to, not only to increase/decrease > the speed, but also to start from a certain point, go backwards and > many other trick modes. > > Trickmodes > <https://gstreamer.freedesktop.org/documentation/additional/design/trickmodes.html?gi-language=c#client-side-backwards-trickmode> > gstreamer.freedesktop.org > <https://gstreamer.freedesktop.org/documentation/additional/design/trickmodes.html?gi-language=c#client-side-backwards-trickmode> > favicon-180.png > <https://gstreamer.freedesktop.org/documentation/additional/design/trickmodes.html?gi-language=c#client-side-backwards-trickmode> > > > <https://gstreamer.freedesktop.org/documentation/additional/design/trickmodes.html?gi-language=c#client-side-backwards-trickmode> > > > Michael > >> On 5 Oct 2023, at 07:57, Will McElderry via gstreamer-devel >> <[email protected]> wrote: >> >> Hi All, >> >> >> I'm wondering if there is a way to change the playback display period >> rate of an input stream. >> >> >> For example, I'd like to convert: >> >> file1.mp4 with 1000 frames, plays back @10 fps = 100 seconds long >> >> Into >> >> file1_fast.mp4 with 1000 frames, plays back @20 fps = 50 seconds long >> >> >> I can do it with ffmpeg in various ways as detailed here: >> >> https://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video >> >> Are there any simple pipelines elements that can do that? >> >> >> (NB: I believe the videorate plugin does not do what I want. Please >> flag if you know otherwise!) >> >> >> Thanks! >> >> >> Will. >>