Since my previous question got a satisfying answer (even two) maybe I’ll get some answers for this question. It’s not been bugging me but it’s been with me for a long time.
First, the background. What we have:
- there’s a significant demand for video editing software for all those content creators on various video hosting platforms;
- there are some commercial products that got mentioned rather often (usually with complaints about their stability);
- there are some freeware or shareware products (less mentioned but you can see them in paid advertisements) that are built on opensource technologies (many of those have
libavcodec
in some form, one even turnedMEncoder
into.dll
form; I checked the programs specifically to see if they have some interesting decoders bundled with, no luck so far); - there are some open-source video editors as well like
Cinelerra
,Kdenlive
orLiVES
that keep existing in obscurity (AviSynth
orBlender
are more popular but they’re a different class of programs); - most of the building blocks for input/output formats support or filters are already there (and if not I’m pretty sure Paul B. Mahol can add more on request);
- there’s a certain traffic cone shaped foundation (maybe VLC secretly stands for cône de Lübeck video) that is known for making an opensource video player that majority of people have heard of and use—on various platforms too;
- beside the player (which can also stream and do other things) they have supported other projects (like
x264
ordav1d
).
So the question (or rather a tree of related questions) is: why can’t those people organise and make a popular open-source video editor? Are they not interested in a product with less then ten million potential users? Are there any principal issues in creating a video editor that I’ve not seen (I remember VLME
which did not even look like a serious attempt)? Or maybe there are some ideological reasons preventing its creation?
To me it looked like it’s possible to build an opensource video editor, it should use mostly the same blocks as video player, it should have some demand and it is possible to make a popular open-source product. So why it is not done, what I’m missing in the picture?
…and silence will be the answer.
Avisynth and vapoursynth have gui, i will write one more for libavfilter using cimgui with sdl2 or something else if enough bored. About single open source product they all think they can win as sole player.
I suspect they’ve won already as a player. Why not do something else?
And real video editor seems to require cutting bits from various sources and combining them all with some effects into one movie. Not the easiest thing but should not be that hard either. The hardest thing probably is to make an appealing GUI, I guess.
Because the end users of a video editor are not technical. It’s that simple.
The users are there and they have to learn how to use some program anyway. Why can’t it be an opensource program?
I think it’s worth noting Shotcut as well under open source video editors, and OpenShot to a lesser extent. MLT is at least common between Kdenlive and Shotcut, and I’ve found both of those editors to work well.
What’s most lacking right now is proper 10-bit support (I think Cinelerra has it, but that thing’s a beast). When I eventually upgrade to a camera that records 10-bit video, I’ll either have to use Cinelerra or DaVinci Resolve. I’d love to keep using Shotcut instead.
That’s not to mention projects like Olive that are doing interesting things but seem to lack sufficient funding/development resources.
Hence my question – there is opensource support for e.g. video decoding, encoding and even capturing (though that one may require proprietary SDKs), there are opensource video editors with varying amount of feature, so why not combine them in one popular opensource product (e.g. by people who achieved success with player/streamer which is quite close in functionality)?
One sad reality of libavcodec/libavformat – as used in Cinelerra-GG – seeking to random position in some mkv, forward and especially backward results in strange results, sometimes it apparently just decodes a lot of frames because there is no way to decode random frame standalone (with mostly unidirectional prediction)
And ffmpeg (libavcodec) 4.4 for some reason can lost last second or two but not on my arm tablet (inside CinGG as I compiled it). 4.3 worked fine.. Too weird for me as non-pro amateur hacker…
Again, video editing demand varible-speed, variable-direction playback of few, often quite unmatched (fps, dimensions) streams, with only partial overlapping varying in time (filter/panning/zoom keyframes). Machinery for handling all this in timely manner a bit complex…
you can look at both cin-cve and cin-gg for some complexity involved
https://github.com/vanakala/cinelerra-cve/commits/master
http://git.cinelerra-gg.org/git/?p=goodguy/cinelerra.git;a=summary
Yes, that’s a valid concern. From what I heard some people use
ffms2
wrapper for more accurate seeking. And unless you introduce some caching for decoded frames you’ll have to skip a lot of frames in a non-seekable large block (that’s why there are intermediate codecs with independently coded frames out there).I guess somebody needs to introduce an intermediate layer for grabbing data from the source, caching and playing with time concepts, but that would mean we need somebody (one person or two people working together) who understands both the needs of video editing and who understands how multimedia works and what needs to be adapted in order to make video editing part easier.
Sadly looks like we’re short of such people.