I've been working on and off on a video editor in C++ for most of a year,
but I came across PiTiVi recently and it appears to be a much more mature
and promising project. I've read through just about every link on the wiki,
and I'm pretty excited by what's there (and also in my 5 minute test of the
program). I'm an amateur filmmaker, and my desire to create my own editing
program stemmed from several shortcomings I found in my usage of commercial
products (iMovie, Final Cut, and Adobe Premiere). My goals for my editor
were as follows:
1) Powerful keyframe editing abilities
My current day job is a software developer at Autodesk (I've worked on both
Maya and Studio), and I wanted to create a tool like Maya's graph editor to
allow me to easily set and modify keyframes. This stemmed from a 24 hour
film competition I took part in, where for one scene I had an overlay that
was supposed to fit inside of a TV as the shot zoomed out. As far as I
could tell, there was no way to link size and motion keys in Premiere, which
made the whole shot exceedingly difficult to work with and change. A
visualizer like Maya's graph editor would have been perfect for this task.
2) DAG-based backend
Every part of the editor would be a series of input and output connections
to nodes. A clip would be a node, outputting to a clip sequence. If an
effect were applied to a clip, the output of the clip would pass to the
effect, which would now output to the clip sequence. Transitions would take
two inputs and output the correct image. This would allow for smarter
redraws (if one effect's parameters change, anything before it doesn't need
to redraw) and pave the way for a simple and effective undo/redo system.
3) Any attribute is part of the DAG, and keyable
Anything on a node that could be changed would be able to be animated.
Because everything is represented as outputs and inputs in the DAG, it lends
itself to easy undo/redo.
4) Support for stop-motion workflows
I didn't have much planned out here, but my experience trying to do stop
motion in both iMovie and Final Cut convinced me that there had to be a
better way (it was ghastly!)
Currently, the only public code I have of my editor is a prototype frontend
I was working on that could play a movie file using ffmpeg, allowing pause,
stop, etc. and a timeline widget I created using Guichan. Unreleased is my
backend work with the dependency graph, with a working undo/redo and
keyframing system. I don't know whether any of these ideas interest you,
but most important to me in a video editor are the graph editor and
stop-motion workflow. I'd love to help with PiTiVi in whatever way I can.
I'm excited to learn more about the plans for PiTiVi's future!