|
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
- Software
- FBUI: My in-kernel windowing system for Linux.
- FWE: my userspace windowing system.
- Bandwidth: My C-based benchmark to measure memory bandwidth.
- Foodist: My C++-based nutrition management program for Windows Mobile.
- Wanderlust: My C++/MFC based outline editor for Windows.
- Maxilla: My OpenGL-based VRML viewer for Windows.
- Anglify: my other-to-English translation program.
- My other stuff.
- Documentation
|
|