MLT vs Gnonlin - Let's get it on!
Written by
on .I have now invested many months of my life into designing a video editor for Linux. I have learned new programming languages, become friends with many people from around the world, and had many "Ah ha" moments. I am a huge supporter of FOSS, and I consider this my contribution to the Linux community!
This is old news to some, but the #1 issue when trying to create a multimedia application is choosing the correct framework to build your application on. There are 2 competing video frameworks to choose from (at least in the Python world): Gstreamer + Gnonlin and the MLT Framework.
Gnonlin:
I really thought that Gnonlin was the correct framework in the beginning. Many people recommended it to me, and it it's based on the largest multimedia library on Linux, Gstreamer. There is even a Python based video editor in development, PiTiVi. Sounds great, right? What could possibly go wrong.
Well, just about everything has gone wrong. Now I realize not all these problems are related to Gnonlin... some are related to Gstreamer itself. But regardless of that, here are the main problems I've run into:
- Terrible support for .DV video files (very choppy playback)
- No support for mixing an MP3 with Video... sounds crazy, but I could never get it to work, and the community couldn't provide a working example.
- No support for transitions, regardless of what people say. There are no working examples of this... other than a few theoretical blog entries.
- Very complicated API (based on Gstreamer). Not kidding here. It's really, really, really, really complicated to understand how to create a Gnonlin pipeline, connect all the signals, and actually get something to happen.
- Even though Gstreamer has a giant community, the Gnonlin community is actually quite small. In fact, it's so small it's really only 1 person, Edward Hervey. Sorry Edward... not picking on you at all, but you really are the only person in the Gnonlin community. =) Kind of reminds me of the Wizard of Oz... ya know, the little guy behind the curtain.
- And because the community is sooo small, I have had 0 of my many questions answered by this community. That's right... zero. The first question I asked to the Gnonlin mailing list took over a month for someone to reply.
- There are no examples, barely any documentation, and only about 3 blog entries explaining the concepts... and some illustrations on how it will work someday... when it's finished.
I'm actually not the first project to dump Gnonlin in favor of the MLT framework. The great Diva Video Editor had an epic falling out with the Gstreamer / Gnonlin community. To refresh your memory:
http://www.mdk.org.pl/2006/12/7/state-of-diva
http://blogs.gnome.org/uraeus/2006/12/08/comment-on-diva/
MLT Framework:
First off, I would like to compliment the MLT Framework (and it's community) for being so professional and patient with me over the past few months. Especially the great Dan Dennedy! They have helped me solve every problem and answered every question I've had so far. In fact, the first night I emailed the MLT mailing list, I received more emails than I have ever received from the Gnonlin community.
I wish I had discovered the MLT framework sooner than I did, but I guess better late than never.
Here are some of the MLT advantages:
- Great support for .DV video files (very smooth playback)
- A super simple API, Command line, and XML format which makes developing an application very easy.
- Can mix any number of audio files and video files together... without crashing, without bugs, and without a problem.
- A full transition system... including a cool luma translation which will enable all sorts of custom Star Wipes, Key Holes, and other transitions.
- Most importantly, it's got great documentation, lots of examples, and a responsive community to help answer any questions.
Also, a great framework deserves a great logo. Just for fun, I've prettied up the MLT logo, so it's a bit shinier... to match OpenShot's good looks. =) Please let me know if you want the SVG version, and I'll email it to you.