Muvy: a nonlinear video editor

This is
Muvy.TK



Document version 0.9
Copyright © 2009 by Zack Smith.
All rights reserved.

Introduction

Muvy is my video editor for Windows. I've created Muvy because for many years I've waited for someone else to take up the task of creating a decent video editing program and although some have tried, no one has succeeded.

I've always argued that a basic nonlinear video editor should not be terribly difficult to either design or implement. A complicated one at the level Final Cut Pro would be, but that program is overkill anyway. So I am creating Muvy for Windows using C++ and making it portable in case I later want to use it under 64-bit Linux.

Goals

With Muvy I'm attempting to achieve a small, fast program that doesn't rely on lots of other software libraries. Non-reliance on other people's software is a key strategy to ensure long-term survival of the project and to minimize maintenance.

The project consists of:

  • The program itself
  • Four built-in fonts (3 of my design and one from TeX).
  • My own widget system (which I have also ported to Windows Mobile)
  • zlib
  • Video For Windows for reading/writing AVIs.

Portability is another goal. I'm writing Muvy for the native Win32 platform (not .NET or MFC), and coding my own platform-independent widget system so that I can later port it to 64-bit Linux.

I'm further enhancing portability by including several fallback fonts of my own design. For text captions I have embedded a large TeX font in the code.

My target features are as follows:

  • Transitions: I have implemented dissolve, wipe, and iris so far.
  • Per-video-clip filters for colors: I have implemented about 15 so far e.g. negative & sepia.
  • Per-video-clip transformations: I have implemented about twenty of these e.g. rotate 90 degrees, shrink to upper-left quadrant, resize to user specified rectangle, add border, etc.
  • Overlay of text i.e. captions. I have implemented a simple bottom-of-screen caption. I plan to add more caption types.
  • Importation of AVI files: I have implemented import of compressed and non-compressed AVI.
  • Importation of BMP images: I have implemented photo import.
  • Montage: I have implemented a montage feature that shows a series of user-specified photos in succession.
  • Rendering to AVI files: I have implemented render to non-compressed AVI.
  • Project open/save.

Muvy.exe is currently about 310 kB and 17000 lines of C++, which includes comments.

FrugalWidgets

Muvy relies on my own custom C++-based widget set, called FrugalWidgets.

Clip types

Currently I support these types of video clips:
  • AVI files (uncompressed and compressed) without sound
  • Videos made from one photo
  • A simple caption
  • A montage of multiple photos
  • A two-color gradient for testing
The program does not currently support sound.

Screenshot

From version 0.112:

Download

  • Installer not available at this time
  • Source code

Links





eXTReMe Tracker