I have planned for a long time to make a video luma stabilizing software, and when I saw this question I gave myself a kick in the butt and built something (hopefully) useful during the night. Now, it's by far a finished and polished product, of course, but if you feel bold and want to give it a shot, here is how you can use it (currently).
The best part: it's free... (and runs locally directly in the browser).
- You will need After Effects
- You video need to be stored as frames/images (they don't need to full size for the analysis though). JPEG, PNG sequences are fine.
- You need to run this on a desktop or tablet with somewhat high resolution. It targets FHD but it may work in smaller screens - I have not tried or accounted for responsiveness quite yet...
Go to this web page to start:
https://epistemex.github.io/Video-Luma/ --- DEAD LINK
As mentioned, everything will run inside the browser (there is no upload) and will require a newer HTML5 browser. I am using Firefox v59 beta for this myself, but you should be able to use v58 stable as well as Chrome, Opera, Edge, Safari etc (although the latter ones may be slower and I have not yet fully tested with these browsers except Chrome).
- Select all your files/frames from the button at the top of the web page.
- Then select the base frame and region to use as analyze area (I hope you don't mind I'm using your video example for these steps). The base frame is to indicate a goal luma for the selected region - also: the bigger the selection the more to calculate and will take longer time, but may also produce better result. Avoid selecting areas with movements (incl. shadow):
Then hit the "Analyze" button and wait until end. How fast it will finish depends largely on your computer specs. There is no escape in this version, but you can always reload the page or close the browser if you feel it will be too slow (in that case consider using lower size frames).
When done you can hit the "PREVIEW" button to get a impression of how it will look. It's not gonna be perfect. Currently I'm just using luma to adjust the values (I plan to support white-balance as well) but you will, depending on the footage, see variations in contrast. Not perfect but hopefully better.
Finally in the web page, hit 1) "Export" and 2) select+copy all the text AS-IS:
After Effects Steps
- Next: Start up After Effects and load the sequence into a comp.
- Then drop the effect "Brightness & Contrast" on top of your image sequence.
- Make sure the play head is at the 1) first frame, expand effects and select the above mentioned effect and its "Brightness" property - then paste (still holding the copy from the browser):
The key-frames should now show in the right pane and you're ready to go! Preview and check if everything looks fine.
I noticed a bug in the browser's image loading process which can produce "spikes" in the data from time to time (unclear why but I'm working on it):
The only current way to get rid these is to open the 1) graph panel in After Effects and 2) manually remove those:
I did implement a "Spike filter" button that is activated if these are detected, but there is a chance it will affect the other data as well so I would recommend not using it for the time being.
I have not run exhausted memory tests but the images are loaded one by one directly from disk as to not to fill up the memory too much so you should be able to run through long sequences although they may take some time.
And that's it, let me know if it's useful in your case (or if something went horrible wrong - which reminds me to add a disclaimer: use at your own risk! :) ).