Keyframes for effects and transitions

Bug #680865 reported by Antonio Roberts
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Novacut
Triaged
High
Unassigned

Bug Description

Some of the best video editors use keyframes for all of their effects and transitions. Kdenlive and Openshot have keyframe options for some of their effects, but these seem to be added as an afterthought rather than a key feature and as such the Kdenlive team have admitted it'd be quite hard to implement this now and Openshot may try and do this (https://bugs.launchpad.net/openshot/+bug/505901)

When designing Novecut I think keyframes should be of importance to all effects

Changed in novacut:
importance: Undecided → High
Revision history for this message
Jason Gerard DeRose (jderose) wrote :
Download full text (3.9 KiB)

hellocatfood in the house! Thanks so much for stopping by #novacut.

Super important feature and I'm really glad you brought this up. It's something I've thought about quite a bit, although I haven't written about it yet.

I absolutely agree that animation (keyframes and both linear and non-linear interpolation) needs to be cleanly implemented once and then used to animate anything and everything that needs to be animated.

I would like to have a set of intuitive transitions similar to what MooTools uses 'sine:in', 'bounce:out' , 'quad:in:out', etc. See http://mootools.net/docs/core/Fx/Fx.Transitions

I think that would be a good place to start as far as non-linear interpolation goes. Then later we could add support for arbitrary cubic Bézier splines as well.

One of my pride points (I know, shouldn't brag) about the Novacut architecture is that we're going to have a *very* clean separation between the user interface and the backend. A big goal is to make implementing the UI so little effort that you can treat the *implementation* as throw-away... because to the end user, all they care about is the design, the implementation is worthless. If the implementation is too much work (too valuable), you tend to protect that value. So we need to make the implementation worthless... because to the user, it is. Anyway, blah blah blah...

Part 1 of worthless implementation: we're using HTML5/JavaScript for the UI. Familiar, productive web technologies that countless designers already know. When running as a native app, we'll use embedded WebKit. We also want to be able to run it through a normal browser talking to a server, where this is practical. We expect serious editing wont be very practical at all, but if people can at least browse through an edit over the web, that's still super cool (not to mention a great way to advertise Novacut).

Part 2 of worthless implementation: save edit as a collection JSON docs (dicts) in CouchDB, the UI updates these JSON docs directly and saves them to CouchDB. Instead of having some complicated API for manipulating the state of the edit, the UI just manipulates the (serialized) state of the edit directly. Couldn't be simpler. Plus web browsers make manipulating JSON super easy. I'm putting a lot of effort in into making the edit description as simple and clear as possible, very close to the metal. I think having such a simple, clear edit description can really help the design efforts too because there's no ambiguity about what needs to be communicated, what's being modeled.

Point of all this is that once the schema for describing keyframes and interpolation pretty sable, people can start going crazy on the design side and implementing these designs even if the backend doesn't yet support it.

I need to do some research into how keyframe and interpolation support is at this point in GStreamer. A bit of work might be needed on this front, but I think the foundations are already there.

hellocatfood, you should talk to JamesMR in #novacut - he's worked with a ton of different professional editing software and has spearheaded some really nice mockups. And you should talk to tonsofpcs in #novacut (@er...

Read more...

tags: added: couchdb design javascript json keyframes schema
Revision history for this message
Dakkar (dakkar9999) wrote :

Not sure if it applies or not. I'm a fan of Sony Vegas. One thing I like it how different effects can be applied at the media level (while in asset bin) at the time line level (to affect all clips) and at the clip level (one specific clip).

Again, not sure if that's the feedback you want to have on your project. In any case, I love the idea you have.

Keep it up!

Changed in novacut:
status: New → Triaged
Revision history for this message
Jason Gerard DeRose (jderose) wrote :

Dakkar, if it's a feature you've liked in other editors, then it applies. :)

So the sort of thing you're talking about (being able to apply a given effect at various stages, or nodes in the graph) is exactly the sort of thing I want to make super easy. The edit description captures this very well as basically the output of any node can be used as the input into another.

Exactly how the UX/UI will shake out is still to be seen. And the backend may take a while to catch up, but we'll just take baby steps at first.

What are some other Vegas features that stand out?

And going back to your example, does Vegas make it easy to move an effect around? Like say you want to move a specific effect from the timeline level to the media level, or the other way around... can you do that? I don't mean just recreating an equivalent, I mean moving that specific effect from one place to another.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.