DVEdit: Features
Home
| News
| To-Do
| Features
| Examples
| Tutorial
| API Documentation
| Download
There are hundreds of open source video editing programs and frameworks
out there. DVEdit is just another, but it could quite possibly be the
best tool for you.
Here are some of the features which tend to make DVEdit a little
different from the rest. Hopefully this section will help you to decide
if DVEdit is a good fit for your video editing needs:
- Easy to learn - get started in minutes!
- 100% script based - no battling with fiddly, flaky
or segfaulty graphical interfaces
- Highly pythonic 'video clip as list' paradigm
- Rich catalogue of Python extension classes encapsulating
video content, and operations on video content
- Simple but powerful class hierarchy offers great leverage and
abstraction
- Unlimited nesting and top-down structuring of video content
- Uses DV format video - but will automatically/transparently
decode from and render to other formats as needed
- Write your video project files in Python, not some
esoteric language or XML grammar
- Gives high-level control over the structure of videos - from
the raw input clips through to final rendering
- Focus on performance - frames are only decoded from the raw DV format
when absolutely necessary
- Written in Cython (a Python-C
interface language, successor to Pyrex) for speed
- Plugin architecture is easily learned without sacrificing features
or performance - start writing custom filters in minutes
- Full frei0r plugin support - load and use without fuss
- Create reusable components - code and media - using Python's
leverage and rapid development facilities
- If you want, you can build your own GUI over DVEdit
- PIL (Python Imaging Library) interface - manipulate individual
frames as PIL objects, save them to disk, load from disk etc
Aims
In designing DVEdit, I have aimed for a combination of characteristics
which I believe are uncommon amongst the existing range of video editing
software:
- Easy to learn
- Good performance
- Simple to script
- Very approachable plugin architecture, welcoming to new plugin
authors
- 'Just-in-time' and 'only when necessary' approach to decoding and encoding:
- If a frame doesn't need any processing, it will be passed through
in its encoded state, without incurring quality loss or wasting
CPU cycles
- 'Pull' model - no processing actually happens until, when rendering
or viewing a final output clip, a frame is requested. This request
will bubble up through all applicable effect stacks until it reaches
a physical Clip.