Ask HN: I'm building a Windows video editor, what are your pain points?
^ this.
Been working on this for waaay longer than I expected :) Anyway, I'd love to hear about your video editing struggles, so I can fix them :)
Been working on this for waaay longer than I expected :) Anyway, I'd love to hear about your video editing struggles, so I can fix them :)
95 comments
[ 2.5 ms ] story [ 156 ms ] threadThe only video editor I've used is iMovie on the Mac, and I found it very confusing to use at first. I've been using Macs since 1986, and I'm accustomed to the "open a file, do something to the file, and then save the file" paradigm, which has worked for documents, spreadsheets, graphics, audio, etc. using many different types of software. It took me an embarrassingly long time to understand that, with iMovie, you are working instead with "projects," which are (if my understanding is correct) a kind of container with links to various video, graphic, and audio files, and that, at the end of the editing process, you need to convert each "project" into a new file in order to share or archive it.
If I had read or viewed a How-to-Use-iMovie tutorial at the start, of course, I would not have been so confused. But I'm used to just diving in with new applications and trying things out, seeking help only at a later stage. That didn't work with iMovie, which was frustrating for me.
I realize now that, because of the size of video files and the time required to process them, the manipulate-the-file-directly workflow probably wouldn't be feasible. But if you think that Windows users inexperienced with video editing would have the same file-based mindset that I had, you might want to see if you can make your interface seem as though the user is opening, editing, and saving their video files directly. If that's not possible, then at least give users the option to view a getting-started tutorial the first time they launch the application.
Funny you mentioned that - when you open the app and start a new project, in the "video area", there's a link to a "Getting Started" tutorial :)
> I realize now that, because of the size of video files and the time required to process them, the manipulate-the-file-directly workflow probably wouldn't be feasible.
Yes, it is very unfeasible :) You don't wanna know the things I do behind the scenes to make this as user friendly as possible :)
> But if you think that Windows users inexperienced with video editing would have the same file-based mindset that I had, you might want to see if you can make your interface seem as though the user is opening, editing, and saving their video files directly.
Not sure what to say here. As far as I know, users have a far less "file-based mindset" as a while ago (I would know, I'm 42 years old :D)
I do think the UI shows to the user that he's opening/editing/saving the files directly - but that's for you guys to say :D
One thing I struggle with is this: how do I show to the user that he's not modifying the original video files? And since we have a video project, if you later remove one of the original video files and reopen the project, part of it is "lost". I need to add a "Create local copies" option and make it easy enough to understand ;)
That's why we made 011.video web editor. It's simpler to user that "Windows Movie Maker" and it's Cross-platform compatible.
Give it a try, It's really free and without watermark : https://011.video/desktop.html
I don't use windows movie maker but there's a lot of laymen people that still do because they understand it and it works. I haven't been able to replace it for them yet.
About mkv: I'm looking into supporting mkv, but it's a really weird format. I've tried in the past to add it, and ran into a lot of issues.
About windows movie maker - lol ;) Maybe they will convert to my app :)
Here's what I have: you can hover over any video track and I instantly show you what's there. So you can decide what's in and what's out.
With this, assuming there's enough interest in something like this, I can optimize it further and do it like in Vegas with a few quirks. Like, you would select several tracks and create a multi-track. When hovering the multi-track, you can choose to view all at once, or a single video and have a hotkey to switch between videos, and another hotkey to select that video as "current video".
I'm not experienced in how you would programmicly impliment mkv, most of the time how I use it is simply take the base h265/h265 file, audio file, subs, etc, and mux it together. Infact an open source Japanese tool called NVEnc does Nvidia hardware video encoding and supports mkv if I recall.
I may take another stab at it in the future. One of the (many) problems I've had with it is that quite a few mkv files have improper headers (thus, you can't know, for instance, the frame size and/or video length in seconds). Some simply can't be read at all - I just get black frames.
Note that I'm using Windows API to parse the .mkv files (I can't use ffmpeg from a commercial app). Some may be bugs in how Windows handles .mkv files (and very unlikely to be solved in the near future) and some may be bugs in how .mkv files have been written (and ffmpeg, since it's so mature, may very well ignore "bad" frames and such).
At the time I analyzed this, I considered this more trouble than it's worth. Perhaps I will reconsider this in the future, with the addendum that if I get an error or so, I will disregard the file.
I remember looking into this a while ago in quite a bit of detail: https://www.engadget.com/2010-05-04-know-your-rights-h-264-p... (there's plenty of other links to this).
Long story short, MPEG LA owns some patents that relate to h264/h265, and you need to pay them A LOT of $ in order to use these codecs. Using ffmpeg will not devoid you of that.
Also, even somewhere on the ffmpeg page, when I last read it, it will say something more in the lines of "we're not lawyers, so take this with a grain of salt".
> a number of programs will externally fetch FFmpeg and just interop with the libraries or FFmpeg app.
As far as I know unless they are actually free, they could end up being sued by MPEG LA. I remember at some point that's what I wanted to do - just download and use ffmpeg as an exe. But if I read stuff correctly, I do think I'm not allowed to do that - in other words you (as an application) are allowed to open a web browser to the link, but it's the user who needs to do the actual download and install.
----------
So all in all, after doing quite a bit of research, seeing how vague the licensing from MPEGLA is and all that, I started looking for alternatives. I found one (from Microsoft), and that's what I'm using. At this point, it satisfies most of my needs (even though I had to do lot of optimizations on top of it) -- in case this won't hold true in the future, I may revisit the whole ffmpeg mambo-jambo :D
In every editor I used, they usually miss YUV support and OpenEXR support (monochannel 16bit images for example). It would also be terribly useful to me to be able to zoom anywhere in the frames and get the precise color values and location of any pixel.
A fast way to open two frames of the same file or of two different files side by side to compare would also be extremely useful!
My current work flow is to use
1.YUVView which cover YUV and zooming but it has different bugs [1]
2. OpenCV for OpenEXR, and use the debugger to inspect colors.. It is terribly painful to compare two images :)
If someone has better way to analyse this kind of files I'm very interested!
[1] https://github.com/IENT/YUView
> In every editor I used, they usually miss YUV support and OpenEXR support (monochannel 16bit images for example). It would also be terribly useful to me to be able to zoom anywhere in the frames and get the precise color values and location of any pixel.
From an implementation standpoint, this is not that complicated to implement. I will add it to my todo list, but very likely sometime in the future. I need to know people want this, since it will definitely take a while to implement.
Also, it would not play nice with a lot of optimizations I've done so far - but that is a different issue ;) If there's need for it, I'll do it :D
> A fast way to open two frames of the same file or of two different files side by side to compare would also be extremely useful!
This is also doable. I'm curious why you want this, and how you'd like to visualize the differences.
> It is terribly painful to compare two images :)
I know :D A looong time ago, I implemented a very advanced zoom on images, so I know :D
Side-by-side let me improve my understanding of the algorithms' trade-offs (think for example comparing different compression algorithms, inspecting artifacts). It would also help me debug my codes by comparing pixels values with a reference for example, and many other usages.
Of course, those are not the only requirements, but it would already spare me a lot of time to be able to open this kind of format by simply clicking on the file :)
The others operations I perform daily are frames' differences (|img1 - img2|) and display them using some colormap. We also frequently need to run several quality metrics like MS-PSNR, SSIM, etc.. to "objectively" evaluate what we see.
For the OpenEXR their lib is ok for opening images, I need this because several images I use have only one channel in 16bits, and it's one of the only formats capable of storing this kind of data.
While for YUV, the format is actually extremely simple! It's just a big array containing an intensity component (luma) and colors components (chroma) with some upscaling[1] and GPU's decoders can work with them if it's a performance issue [2] ;).
Both are standard in the professional video community! Think of them as "raw" video formats.
[1] https://stackoverflow.com/questions/60729170/python-opencv-c...
[2] https://docs.nvidia.com/drive/drive_os_5.1.6.1L/nvvib_docs/i...
If lots of people will ask for this, I will certainly implement it. I do understand what you need, and while it's not easy, it's definitely doable. Knowing my already huge todo list, this will take a lower priority.
Just in case the above are a "must", and your company is paying, I could set aside 20-40 hours/month to work on this -- as a contractor (I am expensive though :)). Hit me up if you're interested in that.
1. Rotate all or parts of a video. 2. Crop all or parts of a video.
Either these are features nobody wants or I'm just not good at operating video editors.
> 1. Rotate all or parts of a video.
I have that :) It's part of the crop function (you can set an angle).
> 2. Crop all or parts of a video.
Yes, I have that, I even have an animated crop - where you can set several keyframes, and at each keyframe you set the "crop" and I animate in between.
There are many competitors, and most have at least some form of a free version[1]. My pain in DaVinci is different than in Blender, and for all I know, everything could be solved if I ever spent enough time in either.
You've come up with another to add to the mix, and I appreciate that you want to fix pain points and make something good. But please explain what is different about your offering that made you decide to start to build it - why it is different!
(Unless you just built it to learn how to build it, and there is nothing differentiating your program. In which case I have a world of respect for you, but that's quite a bite of pie you took.)
https://www.oberlo.com/blog/best-free-video-editing-software
My focus is on speed and easy of use.
I already have some features that pretty much no one else has: - Custom Music Visualizers -- the ability to have any part of the video react to music, - Epic Focus (which is Pan and Zoom, but with an extra twist -- for instance, zoom in / out with a blur effect - ability to play an audio track only simply by hovering and pressing Space (or Shift-Space to play all tracks)
The hardest part is allowing to edit any control properties, anywhere in the timeline. It will still happen with keyframes, but a lot easier than Adobe.
And mask editing -- the way I will allow it is not present in any existing program, as far as I am aware of.
The last two things - will probably take an additional 3-4 months to implement ;)
1) Unfortunately, I will not focus on low-spec machines. The future is high end, and my app will cost money. It's very likely people with low-spec machines won't pay for my app anyway. The main reason for this, however, is that low-spec machines would require me to do optimizations that will don't really matter for decent machines (read: a lot of work, with no ROI).
The least I need is 8GB of RAM with 1 GB of video RAM, even though I recommend 16GB of RAM + 2GB of video RAM
2) I will allow for repeatable tasks to be automated, and I do think I will allow some scripting, even though I will do my best to keep it to minimum.
So many of my relatives ask me where Windows Movie Maker went - it wasn't the most powerful tool of course, but it was so easy to use and arrange videos with, especially for not too tech-literate people.
There's nothing that comes close, especially not what MS has built-in at the moment (basically just generating videos from slideshows with confusing UX).
However, I added it to my todo list to take another look ;)
Kdenlive[1] is very good for this and kind of resembles Windows Movie Maker of old. I'm not a movie editor, so Kdenlive is my goto clip editor when all I want to do is something simple without having to think how to do it (I've tried iMovie and Premiere). Very intuitive!
[1] https://kdenlive.org/en/
Open source, KDE, Qt-based project.
I wasn't aware of kdenlive, until a few days ago when it popped in my news feed :D I'll take a look :)
Thanks again!
These are my two suggestions:
1)Try to enable targeted video size feature for the generated/exported video. Also design a simple UI menu to automatically transcode and resize the generated video according to the chosen video format.
2) Make it easy for the authoring of the sub-title by including dead simple and easy to use vector graphic editor built-in and integrated inside the video editor (not third party full blown vector editor).
> This. Please optimize for casual users and due to Covid-19 social distancing more people are forced to making and editing their own video.
Agreed! I've done my best to do just that - but clearly, you will be the judge of that :)
> 1)Try to enable targeted video size feature for the generated/exported video. Also design a simple UI menu to automatically transcode and resize the generated video according to the chosen video format.
Agreed! I would say I've done achieved this - basically, when you click 'Export', you can set the FPS, and the video format (low, HD, Full HD, 4k - coming soon).
There's also an option for video ratio (such as 16:9, 4:3, and so on) - available via the project's settings. Hopefully people won't think it's buried too deep in the settings menu :)
> 2) Make it easy for the authoring of the sub-title by including dead simple and easy to use vector graphic editor built-in and integrated inside the video editor (not third party full blown vector editor).
Added to my todo list. I want to do it similar to what Adobe has - which will be a bit of work :D But yeah, I'll have it ;)
About video processing time - are you talking about the rendering time, at export, or the "optimize" time when you import the video into the project?
Software stability: for sure! One of my priorities is fixing any crashes ASAP (1-2 days since they happen, if possible)
For export, avoiding reencoding where possible is a must in my opinion, e.g., for extracting clips from a video (even if frame boundaries are inexact).
Also, I would like it to be super easy to keep the existing frame rate, quality, encoding, etc. Most software I see today ask for fresh export settings and not let easily figure the current ones (I guess assuming each video clip imported may have differences on these parameters).
It would be so much better, for some tasks, to treat videos like usual documents - open, edit, save (to the same location), as opposed to import, edit, export.
I do know what you mean :D
> For export, avoiding reencoding where possible is a must in my opinion, e.g., for extracting clips from a video (even if frame boundaries are inexact).
At this time, this is not as easy as I'd like. I can't use ffmpeg, because my app in commercial. So at this time I do reencoding -- these are implementation details I simply can't avoid.
However, this happens on GPU, and it's really really fast. Especially on a decent graphic card.
> Also, I would like it to be super easy to keep the existing frame rate, quality, encoding, etc. Most software I see today ask for fresh export settings and not let easily figure the current ones (I guess assuming each video clip imported may have differences on these parameters).
This is doable (basically, guessing the best arguments by looking at all imported videos).
> It would be so much better, for some tasks, to treat videos like usual documents - open, edit, save (to the same location), as opposed to import, edit, export.
This is an interesting idea. Do you mean, have a special extension, and when you open it do your editing + auto save + at close, you've already saved the video project?
>> This is an interesting idea. Do you mean, have a special extension, and when you open it do your editing + auto save + at close, you've already saved the video project?
Typical video software has it like a build process. So there are these project files maintaining the list of all resources, edits performed, settings, etc. Editing a Word document needs none of it. For many casual edits, it would be great to just open a video file, make edits (e.g., rotate the video, remove some segments, increase brightness, etc.) and click save (which overwrites the original file), and all done. There's no "project", no auto-save, etc.
Interesting, I'm actually curious of some numbers. This probably makes sense for insanely simple editing, but very likely if you do any edit, you'll always need to reencode (since you do some processing).
> Typical video software has it like a build process. So there are these project files maintaining the list of all resources, edits performed, settings, etc. Editing a Word document needs none of it. For many casual edits, it would be great to just open a video file, make edits (e.g., rotate the video, remove some segments, increase brightness, etc.) and click save (which overwrites the original file), and all done. There's no "project", no auto-save, etc.
Interesting, I do understand the allegory, but I'm not sure this is such a good idea. Just imagine this - you put some text on top of your video. In 5 minutes you want to move the text a bit lower. Bam, you wouldn't be able to do that.
Yes.
An example would be extracting or eliminating segments from a video recording.
>> Just imagine this - you put some text on top of your video. In 5 minutes you want to move the text a bit lower.
Sure. It's understood that once rasterized, further edits are nearly impossible.
However, it's not that a similar thing is unseen elsewhere. If I delete some text from a document, save, and close the application, and in 5 minutes, I want to get it back ...
If the user wants to keep the original, they just use "Save as ..."
The added complexity of 'project' based workflows is not worth for all edits.
That would put the responsibility on the user to remember all that. If I decide to do something like that, I'll need to save the original myself, and allow the user to go back to it.
But yeah, now I get the appeal of having something like this. I've added it to my todo list -- if enough people want this, I can certainly implement it (it would disrupt quite a bit of my internal workflow, since I view "videos" as constant, and optimize them as such. so I would need to find a workaround for editing in place, but it's certainly doable).
In my view, there is scope for innovation here by making it easier over how most software applications do this.
Here's an example of a very different workflow:
https://www.descript.com/video-editing
> In my view, there is scope for innovation here by making it easier over how most software applications do this.
Agreed!
> Here's an example of a very different workflow: https://www.descript.com/video-editing
Yeah, that is kinda' very very cool :D
I know they used to be audio only a few months back. Apparently they moved into video as well. Interesting, I will certainly take another look at them.
Use as much power of my gpus as you can, if I have a high end nvidia gpu I want to see it acting like a hot knife through butter.
When I drag footage in a timeline update the display, Premier shockingly doesn’t do this.
Reload footage button, another thing Adobe Premier doesn’t have.
For previewing and playing, I use GPU only. For rendering (export), it's a combo of GPU + CPU, and I defer that to Windows - in a nutshell, there's an API that you call, in order to export an .mp4 file. Of course, there's a lot more than that, but you don't control what the OS will use in order to write the .mp4 file.
> Be aware of variable frame rate footage, make me aware and have clear ways to deal with the issues. Adobe software lets you screw yourself with this, it’ll import fine, not warn you but then your exports will have seemingly random weirdness like flashes of green for single frames that’ll make you think your hardware is failing.
I do handle this pretty well. I have a "properties" pane, and for media, if you click the "media" icon, I will show info for each video, which includes the frame rate.
I will convert that frame rate into your project's frame rate, by a simple convert X FPS to Y FPS algorithm. You'll never see any flashes of green.
> Use as much power of my gpus as you can, if I have a high end nvidia gpu I want to see it acting like a hot knife through butter.
Agreed 200% - you'll see your GPU sweating, trust me ;)
> When I drag footage in a timeline update the display, Premier shockingly doesn’t do this.
I do this, and if I understand correctly what you mean, I give you a bonus feature: instant preview all the time, while you hover the mouse through the timeline (like Final Cut).
And as an extra bonus, something not even Final Cut has, I will give you specific preview, based on where you are in the timeline - if you're hovering a specific video track, I'll preview that only, otherwise, I'll preview all the video tracks + applied effects.
> Reload footage button, another thing Adobe Premier doesn’t have.
Not sure what you mean - when should this be applied?
Say I 3D render out an image sequence, do some video work then re-render over the original files, in After Effects I can right click that image sequence in the file list and hit reload and it will reload those files from disk and clear the cache so you see the updated sequence in your composition.
Premier doesn't have this feature, sometimes it just updates anyway but often it doesn't and the only real solution is closing the app and reopening.
I use a different rendering process, and at this time, there's no need for this (the GPU can do all the work real time).
Everything I've dealt with so far didn't require pre-rendering yet. I may end up doing this in the future for insanely complicated scenarios. Otherwise, I do a lot of optimization behind the scenes for loading the video frames (I've made my own PRORES-lookalike format), while applying all effects on the GPU.
If I will end up implementing this, I will also allow for a Refresh footage button :P
Here's what i need from a video editor : ability to cut/copy/move video across timeline
add/remove audio tracks and adjust their volume + mute certain parts
apply cool transitions here and there
add text overlay and text frames
and all this without the 1000 knobs and buttons in the pro editors, and without the buggy and ugly free editors
I would pay 10-15$ for such editor per year. After all it's for casual use. anything more than that and it would make me wanna pirate it.
> My biggest pain points are that all the good video editors are paid, and the free ones are total crap.
I do agree with that :)
> Here's what i need from a video editor : ability to cut/copy/move video across timeline; add/remove audio tracks and adjust their volume + mute certain parts; apply cool transitions here and there; add text overlay and text frames
While I do have all the above, I will offer a lot more, and the pricing will show that.
> I would pay 10-15$ for such editor per year. After all it's for casual use. anything more than that and it would make me wanna pirate it.
Yes, unfortunately that will not fit my pricing. Thanks again for the feedback!
I may have some special offer for casual use - I will need to think really thoroughly about that.
- Maybe you can look at (linear) music DAW's (reaper, cubase, logic,studio one) for inspiration on UI; track grouping/labeling, fades
- what I longed for years ago was an easy way to; (non destructive) editing on low quality copies of source material, and using their HQ originals for rendering.
- the use of VST plugins for the audio part
- A while ago i read about software to cut video files without rerendering / converting(dunno if thats common, or useful, but sounds interesting)
> Maybe you can look at (linear) music DAW's (reaper, cubase, logic,studio one) for inspiration on UI; track grouping/labeling, fades
Great idea! I have a friend that is an expert when it comes to music, and I will ask him more about this. He did give me some advice, based on Logic's app ;) I will dig deeper into this.
> what I longed for years ago was an easy way to; (non destructive) editing on low quality copies of source material, and using their HQ originals for rendering.
Hehe, that's what I do now, behind the scenes ;) It took me quite a while to develop, but I'm quite happy with the results :P
> the use of VST plugins for the audio part
This is a highly complex issue, but I will dig deeper into it. I am pretty happy with how I handle the audio now (that doesn't mean it couldn't use an improvement :D), and depending on what people will want, I can slowly implement them as well ;)
> A while ago i read about software to cut video files without rerendering / converting(dunno if thats common, or useful, but sounds interesting)
It is possible, I did a few tests, but not really worth it. In other words, I'm not sure of a scenario when that would truly make sense.
I do what to go multi-platform ASAP. However, because of the sheer complexity of video editing - and since I focused on speed + ease of use from the get go, I chose to go with a single platform (Windows) for starters.
Once I am close to feature complete (as in, be able to properly launch and be rock stable), I can think of porting to Mac (first), and who knows, maybe Linux.
I did think about this from the get-go, so I did isolate the complicated code in a specific module. So theoretically, it should not be very easy (read = 2-3 months :D) to port. But when reality will hit, we'll see :D
The more magic you can do for the average user, the better (e.g. how Lightroom or Instagram work for pics)
> Easy of use like the windows movie maker, basic cutting, and easy to apply LUTs.
Agreed! I'll take another look at windows movie maker, but I do think I have all that.
About LUTs - I will certainly have that, I do think in a 3-4 months timeframe, it's certainly on my TODO list. I know how to implement it, but it's certainly far from trivial :D My take is that it'll take me roughly 1 month to have it done.
> The more magic you can do for the average user, the better (e.g. how Lightroom or Instagram work for pics)
Agreed, that's what I intend to do, thanks again!
I've yet to use a good video editor (I've tried iMovie and Windows Movie Maker). They both kinda suck. I would like more "tracks" to drop stuff in and have the app assume what 99% of users are trying to do. Lots of Right click context menus are awesome too.
Windows can suck, in lots of ways ;) Now multiply that by 1000x if you're a developer :D
> I would like more "tracks" to drop stuff in and have the app assume what 99% of users are trying to do.
Right now I allow for 9 video tracks + 6 audio tracks, but I'll soon have 20 video tracks + 12 audio tracks.
> Lots of Right click context menus are awesome too.
Agreed. I will add right click menus at a later time. Right now, pretty much everything is right there simple (IMO of course :D), at the touch of a button.
Hehe ;) I've actually had to create a PRORES-lookalike for Windows, since normal play would be waaay too slow. I can work on some improvements at a later time, but at this time, I'm more than happy with the results. You can play a video at any speed, or backwards with no lag :P
- file formats and conversion. Maybe auto-conversion could happen in the background while I cut with low-res?
> choosing output format at the start, not just at export
Got it, added to my todo list.
> file formats and conversion. Maybe auto-conversion could happen in the background while I cut with low-res?
I do support the popular formats for now. What do you mean by "conversion"? In my mind, that clearly happens when you import the file into the project.
At export, I do go through the original videos, to get the highest res for each video frame. If this is what you mean by auto-conversion, that is possible, but not sure how advantageous it would be - it takes a lot of CPU + GPU (even if in the background) and may disrupt your editing. I will dig deeper into this.
I don't want to choose the format at the start, but do want it only on export.
The conversion part is probably not a common use case. I use found-footage a lot and web video comes in formats that make e.g. premiere struggle. Maybe better don't listen to me after all :)
By output format, do you mean, .mp4/.avi and the like? If so, clearly on export is where it makes sense (which is where I have it)
> I use found-footage a lot and web video comes in formats that make e.g. premiere struggle
I see. If you download it as .mp4, it's easy. Other formats (.mkv, for instance) are much harder to interpret. I will try to strike a balance between what people want and how easy I can support them ;)
Yes, but even more: resolution. I don't want to think of whether I need HD or 4k later, I just want to do a cut now.
> I will try to strike a balance between what people want and how easy I can support them ;)
Maybe you can check out what is easy to re-mux with ffmpeg if you use that. Often it's just the audio that needs to be re-encoded.
Got it, so if I understand correctly, that means reasonable defaults.
> Maybe you can check out what is easy to re-mux with ffmpeg if you use that. Often it's just the audio that needs to be re-encoded.
Unfortunately, I can't use ffmpeg in a commercial app. But yeah, I'll figure out something :)
no, that means you only have to choose a ratio and place your videos in there, but you don't have to commit to a certain resolution or framerate or at least you can change all that later without any effect on video position, scale and cuts.
Too bad about ffmpeg, I love it so much :)
Sorry for my poor choice of words. That's what I meant. Only the ratio is fixed (clearly, you can change that too, but very likely you would need to readjust everything).
> Too bad about ffmpeg, I love it so much :)
Trust me, I know :( Everything would have been orders of magnitude easier for me, had I been able to use ffmpeg.
So basically where it counts (x264 and x265), I can't.
LATER EDIT:
I remember looking into this a while ago in quite a bit of detail: https://www.engadget.com/2010-05-04-know-your-rights-h-264-p... (there's plenty of other links to this).
Long story short, MPEG LA owns some patents that relate to h264/h265, and you need to pay them A LOT of $ in order to use these codecs. Using ffmpeg will not devoid you of that.
Also, even somewhere on the ffmpeg page, when I last read it, it will say something more in the lines of "we're not lawyers, so take this with a grain of salt".
----------
So all in all, after doing quite a bit of research, seeing how vague the licensing from MPEGLA is and all that, I started looking for alternatives. I found one (from Microsoft), and that's what I'm using. At this point, it satisfies most of my needs (even though I had to do lot of optimizations on top of it) -- in case this won't hold true in the future, I may revisit the whole ffmpeg mambo-jambo :D
even if it needed Wine.
Here's my answer to another user:
I do want to go multi-platform ASAP. However, because of the sheer complexity of video editing - and since I focused on speed + ease of use from the get go, I chose to go with a single platform (Windows) for starters.
Once I am close to feature complete (as in, be able to properly launch and be rock stable), I can think of porting to Mac (first), and who knows, maybe Linux.
I did think about this from the get-go, so I did isolate the complicated code in a specific module. So theoretically, it should not be very easy (read = 2-3 months :D) to port. But when reality will hit, we'll see :D
For me, 99/100 times all I want to do is trim, split, have multiple tracks, have some fades, add text (animation or not), and lastly read and output various codecs.
Update: I had a thought right after posting. Basically if you could take Shotcut, but make it look and feel more like Sony Vegas, I think you hit the nail on the casual/semi-pro you're looking for.
> GUI's. Plain and simple. It's gotta be as absurdly easy to use like iMovie but at least have the basic capabilities of a Sony Vegas Home version (the $30 kind).
Agreed! I do hope I've done this, but yeah, you would need to try it and let me know :D I'm sure it can always be made easier, and I will certainly constantly improve on it!
> Cutting, scrubbing, aligning, have multiple tracks, and for gods sake a simple and easy way to understand what I'm encoding/rendering (see Shotcut).
Got it! Cutting, aligning, multiple tracks - it's there. Scrubbing - it's on my todo list (this is really difficult to implement! :)) I do think I have a simple way to show what you're rendering (once you press Export), but I'll take another look at Shotcut.
> KDENLive and Shotcut are two OSS video editors I've used simply because they're open source, but by god do they still have a long ways to go in terms of stability and ease of use.
Hehe, I just took a look at KDENLive - it's decent, but the UI is pretty horrible :D So I guess I'm in good shape :D
> For me, 99/100 times all I want to do is trim, split, have multiple tracks, have some fades, add text (animation or not), and lastly read and output various codecs.
Yup, makes sense! I do have a bit to go on this front, but yeah - all that I don't yet have, added to my todo list.
> Update: I had a thought right after posting. Basically if you could take Shotcut, but make it look and feel more like Sony Vegas, I think you hit the nail on the casual/semi-pro you're looking for.
Got it! Not a huge fan of Sony Vegas, but I'll take another look. My biggest inspiration so far has been Final Cut.
At this time, I have some pretty cool text effects. But yes, the text support is not as good as I'd like. It's something I'm working on fixing. So yeah, I'll definitely have that :)
I would say I have the trimming should be working quite nicely ;) I do it similar to Final Cut. I will take a look at handbrake just to make sure. I assume you mean handbrake.fr, yes?
About conversion - right now, I save videos as .mp4 h264 format, and can easily add h265 in the future. This should cover 99% of usecases (IMHO :D) -- and will allow presets for youtube/fb/insta/twitter and the like.
Most video editors don’t help users with audio.
Ideas:
Templated signal chains for individual audio tracks that include simple things such as gate, subtractive eq, compression, additive-eq
Templated master audio signal chain that can include simple compression / limiting , eq, and maximizing with a specific target LUFS in mind (based on where the user intends to upload as different sites have different ideal loudness)
Level suggestions for tracks, based upon if they are dialog, music-bed, room tone etc
Automatic level adjustment to bring the music bed up and down based on other tracks. Or simply the ability to generate suggested level automation.
Actually, automatic suggested level automation on any track independently would be really useful for things like dialog and interviews.
Not specifically audio, but being able to output multiple different renders depending on target website with a single click. (Ideal container, codec, resolutions, ratios, LUFS, etc). Even with predefined templates in other editors I have used, I still need to select and queue each render specifically.
Of course these suggestions are very reductive, but even the basics go so far in making a video not be bad.
Ultimately bad audio can make the best video unwatchable. Give the user some optional guard rails.
Oh yeah, don’t forget to transparency account for audio processing latency. Else lips won’t sync with dialog. Saw that happen with a beta version of an editor a few years back when they added VST support.
> Since you are aiming at more casual users, consider intuitive intelligent audio controls.
Agreed. I have a friend that is pretty much an expert in Logic, and I will ask him for more input. As a side-note, I think the UI will be the "easy part" of the deal :D The implementation - that may be insanely hard :D So I will have to strike the right balance :D
> Beginner and often intermediate users often do not understand the importance of good audio in a video. When they do it still takes a steep learning curve to understand the complexity and nuances of even the basics.
100% agree :)
> Most video editors don’t help users with audio
Agreed here as well :D One thing I'm kinda' proud of is you can go anywhere in the project , go to an audio track and space will only play that. Or shift-space will play all tracks (no video). And one can create music keyframes (that move along with the audio if you move it), and you can snap video to them.
> Templated signal chains for individual audio tracks that include simple things such as gate, subtractive eq, compression, additive-eq
I know a bit of the theory here, but I'll need to did lot deeper into this. At some point, I believe I'll definitely have this.
> Level suggestions for tracks, based upon if they are dialog, music-bed, room tone etc
This sounds complicated, but will delve into it at a later time.
> Not specifically audio, but being able to output multiple different renders depending on target website with a single click. (Ideal container, codec, resolutions, ratios, LUFS, etc).
Agreed, this will definitely be there :)
Make is super easy to do simple tasks: crop, blend, merge separate clips and insert transition and texts. This covers 90% of needs.
If you tackle this - it's a winner.
I have crop, merge, insert transitions/texts.
I will integrate blending. That's pretty much on top of my todo list (after some stability fixes :D) It will take some time, since I will do this as part of a larger module that will allow advanced masking and such :)
The module I'm talking about will also allow some pretty cool text effects with close to no work on your part at all :) But it's quite a bit of work on my part :P