owickstrom / komposition

The video editor built for screencasters
https://owickstrom.github.io/komposition/
Mozilla Public License 2.0
428 stars 22 forks source link

Edit clip speed #60

Closed owickstrom closed 5 years ago

owickstrom commented 5 years ago

Would be very useful to have a way to adjust clip playback speed:

  1. For individual clips in the timeline
  2. A default playback speed for assets in the library, set on import, that is used when adding them as clips to the timeline

Without option 2, if you import N auto-classified clips, you'd have to manually set the same speed of those N clips in the timeline.

I think this should be designed together with #10, in that they could share an edit modal dialog that pops up.

owickstrom commented 5 years ago

Ping @rabbitonweb

owickstrom commented 5 years ago

I've been working on this in https://github.com/owickstrom/komposition/tree/default-video-speed, and most of the support is there, except I'm having trouble with the rendering pipeline. I haven't been able to do per-clip speed adjustments in the FFmpeg filter graph. Durations of clips end up incorrect, and it's very messy to test.

I started looking at Gstreamer, and specifically the gstreamer-editing-services (GES) library, to use in the rendering pipeline instead of FFmpeg. This has been on my radar for a long time, and I think it would be a great improvement. Komposition is already using Gstreamer for previewing clips, so it should be somewhat straightforward to integrate.

However, GES doesn't support manipulating clip speed. There was a GSoC project and a merge request to implement support in the framework and in PiTiVi, but it seems stalled. Until that's in place, I'm not sure it's worth spending time on moving to Gstreamer for rendering.

In the meantime, for users that want to speed up clips, I suggest speeding up the media before importing. This can be done with FFmpeg on the command line.

owickstrom commented 5 years ago

I decided to give this one some more blood, sweat, and tears. I might have something working OK with ffmpeg now. @rabbitonweb, do you mind trying out the branch https://github.com/owickstrom/komposition/tree/default-video-speed?

You can't currently edit speed-per-clip in the GUI, but when you import video files you set a default video speed (2.0 for double speed, 0.5 for half speed), and that will be used when adding clips to the timeline.

owickstrom commented 5 years ago

Fixed by #68