View Full Version : What Would It Take to Roll Your Own NLE?
Acid_Reign
25th September 2008, 09:51
Hey there,
I am attempting to create a video application in the form of a very basic non-linear editor. I did some searching around on Google but wasn’t able to find any information about video editors; only video players, and even then it was somewhat limited. Since I know a lot of people on this forum are software developers, I figured I’d pose my questions here.
I have some programming background, mainly with PHP and JavaScript, but very little else. I’ve worked with video before in the form of shooting, editing, ripping, and burning, but never on an elementary level. So, here’s what I’m curious about:
How steep is the learning curve when it comes to writing video-based applications?
Are there any sites out there that could walk me through the basics?
How feasible would a Java implementation be?
Big thanks to anyone who can point me in the right direction.
stax76
25th September 2008, 11:49
Why not use Windows Movie Maker for instance, building such a application isn't easy.
smok3
25th September 2008, 14:02
i imagine that it would be hard to write a decent frontend, the backend would be nightmare.
mikeytown2
25th September 2008, 19:52
JS as in JavaScript? I would probably want to use a JS Framework.
http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks
You would then need to code a PHP to VideoEditor backend. I would be tempted to at least give AuCGI a try.
http://www.autoitscript.com/forum/index.php?showtopic=69441
http://www.autoitscript.com/forum/index.php?showtopic=30564
Anyway If I were you, I would set some basic design goals and go from there. The first one being MultiTrack Editing with frame accurate trims.
Blender has a NLE in it, so that would be a good starting place. AviSynth can be used as well, just remember that many have tried...
If were to do it, I would use StickBoy's RemapFrames (http://avisynth.org/stickboy/). So you start with a blank clip and go from there; adding in frames to the timeline wherever you want, without having to worry about Splicing (http://avisynth.org/mediawiki/Splice). That would solve a lot of organizational problems. Transitions (http://avisynth.org/mediawiki/Dissolve) would be a little tricky, but not impossible. I would work on the back end (scripts) before the front end (GUI) if going the AviSynth route.
Acid_Reign
25th September 2008, 23:40
Why not use Windows Movie Maker for instance, building such a application isn't easy.
Well basically, the platform I want to develop it for isn’t Windows, and doesn’t have a video editor yet, so that’s why I want to do it.
i imagine that it would be hard to write a decent frontend, the backend would be nightmare.
JS as in JavaScript? I would probably want to use a JS Framework.
http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks
Oops, my bad; I wrote JS but meant [regular] Java. I am using an existing SDK that can already handle video. Not sure if that necessarily makes things easier or not (especially considering I'd have to learn Java).
You would then need to code a PHP to VideoEditor backend. I would be tempted to at least give AuCGI a try.
http://www.autoitscript.com/forum/index.php?showtopic=69441
http://www.autoitscript.com/forum/index.php?showtopic=30564
Thanks for this, though I won’t be able to use Windows binaries (see above).
Anyway If I were you, I would set some basic design goals and go from there. The first one being MultiTrack Editing with frame accurate trims.
Well, my main goals would be the bare minimums: Cut, Fade, Add Title, and possibly Resize. Would it be more work to employ that in a multitrack environment, as opposed to a single track environment? Reason being that I would like to release a stable version of this some time before the end of the year, and hold off on the more “advanced” (trickier) features until later.
Blender has a NLE in it, so that would be a good starting place. AviSynth can be used as well, just remember that many have tried...
If were to do it, I would use StickBoy's RemapFrames (http://avisynth.org/stickboy/). So you start with a blank clip and go from there; adding in frames to the timeline wherever you want, without having to worry about Splicing (http://avisynth.org/mediawiki/Splice). That would solve a lot of organizational problems. Transitions (http://avisynth.org/mediawiki/Dissolve) would be a little tricky, but not impossible. I would work on the back end (scripts) before the front end (GUI) if going the AviSynth route.
I love AviSynth personally, but I want this to be usable by someone who may not necessarily have prior experience editing videos. If the script aspect could be made completely transparent, then it could work, but it wouldn’t really do the program justice; I think an AviSynth GUI is in order, but would be better-suited as a project for another time.
So I guess I’m wondering how adaptable the Blender source code would be, which, seeing as it’s Python-based, might overly complicate things. Is there perhaps something better-suited for what I’ve outlined here?
mikeytown2
26th September 2008, 10:47
Start here
http://en.wikipedia.org/wiki/List_of_video_editing_software
http://en.wikipedia.org/wiki/Comparison_of_video_editing_software
http://en.wikipedia.org/wiki/Jahshaka
http://en.wikipedia.org/wiki/Clesh
http://en.wikipedia.org/wiki/FORscene
LoRd_MuldeR
26th September 2008, 15:53
Acid_Reign, you may want to take a look at Avidemux as a starting point. The code is available under GPL license.
http://forum.doom9.org/showthread.php?t=126164
It's written in C++, it's cross-platform, the GUI is based on Qt4/GTK+ and it use ECMAScript (SpiderMonkey) for scripting support.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.