+ Reply to Thread
Results 31 to 50 of 50
-
Serves me right for being lazy
Code:#cherbette part2 after dejitter processing AVISource("D:\project001a\sampleproblem5\cherbette.avi") ref=crop(200,50,50,100)#Set this to an area in the scene which you know doesn't change refbright=getrefbright(ref) stabilizebrightness(last,ref,refbright) MCTemporalDenoise(settings="low") QTGMC( Preset="Slow" , Sharpness=1.2, SLMode=1) selecteven function getrefbright(clip v){ v current_frame=0 AverageLuma } function stabilizebrightness(clip v, clip ref, float refbright){ ScriptClip(v,""" b=ref.averageluma tweak(bright=refbright-b) #subtitle(string(b)).subtitle(string(refbright),y=16) """, args="ref, refbright") }
-
My advice for select ref, is to find an area as vertically high as practical (but which shouldn't change, like the wall in a background), and a little wide (8 wide or so minimum, but wider is better)
You can even select spots where it's moving, but there may be a slight dimming in the overal video as it's zooming in.
The long shots showing the crowd will be hardest to fix. One good thing about this video actually is the timestamp, you could actually use the first few digits as your brightness reference. -
Ok,
here's the logical conclusion of my technique
http://www.sendspace.com/file/ivxne6
I'll go ahead and say it this time - the flickering is almost perfect. Needs just a little tweaking. I'm afraid that while this technique is very powerful, it really needs some kind of steady background to reference.
What else is wrong with it? I can fix the color streak at the top, for example.. -
Do you mean to get the average luma over all frames, for example?
Code:GScript(""" sum = 0.0 for (current_frame=0, FrameCount()-1) { sum = sum + AverageLuma() } avg = tot/FrameCount() """)
-
No, the average picture, pixel-by-pixel. Like if I wrote average(v.trim(0,-1),1/framecount(v),v.trim(1,1),1/framecount(v)...)
-
-
You'll just have to try it.
My new sample uses a new technique, but that one needs a sample from a steady background for the whole frame to work. Mostly just wanted to see what it looks like. My conclusion is that your video is really quite good, if it can be dejittered and the variation in brightness line-by-line removed, what's left is fine, with a little denoising. -
I agree...it's really not in that bad of shape. There are some scenes that are extremely washed-out later on though...I'm hoping maybe I might be able to stabilize them using scenes that don't have the brightness flicker....and of course eventually correct the time base errors on the scenes with darker edges (audience shots of Cher from afar etc). It's all a work in progress.
May I ask what your new technique is? -
I have to say it's not really user friendly, but I find a stable background on each line, then average that out for many frames, then use that as a reference brightness for the same spot.
For example if pixel 50 on line 1 is supposed to be 140, but this frame it's 132, then I increase the brightness for the whole line by +8. Now that reference pixel is perfect, and due to this type of noise being only changes in brightness for the whole line, the whole line is perfect too.
Did you see my latest video? -
I sure did...it looks much more stable than before and seemingly better than the results I was getting toying around with trying to do it on my end.
-
This should work for the whole video:
Code:#cherbette part2 after dejitter processing AVISource("D:\project001a\sampleproblem5\cherbette.avi") ref=Crop(76, 400, -558, -40)#3 digits of time counter refbright=getrefbright(ref) stabilizebrightness(last,ref,refbright) #MCTemporalDenoise(settings="low") #QTGMC( Preset="Slow" , Sharpness=1.2, SLMode=1) #selecteven function getrefbright(clip v){ v current_frame=0 AverageLuma } function stabilizebrightness(clip v, clip ref, float refbright){ ScriptClip(v,""" b=ref.averageluma tweak(bright=refbright-b) #subtitle(string(b)).subtitle(string(refbright),y=16) """, args="ref, refbright") }
-
Thanks once again Jmac...can't wait to test it out. I'll post some result clips
-
http://www.mediafire.com/?ogs31usfm7bs565
Here's a couple minutes before and after Jmac's latest script... -
Interesting, the flicker to me just passed the threshold from being annoying to noticeable, but watchable. Also you can increase threshold in the dejitter script to fix the few flickering lines up top. It doesn't look like you ran a pass with mctd and gmtc.
There's ringing on the edges and color bleed. I'm not the expert on this stuff, someone else probably has solutions for it.
There's a spot where she's leaning over that dejitter doesn't seem to work, that's weird.
I don't know how you managed to suffer through my slow dejitter scriptWhat kind of machine do you have?
-
It only took I think 6 hrs for that 2 minute segment lol...I just let it process overnight. I'll toy around with the dejitter threshold. I didn't run mctd or gmtc just yet but I will..I just wanted to demonstrate the "deflicker" alone.
-
Oh man.. well the good news is I'm learning how to write plugins in C, cause I know my script is just too slow. In fact, the sooner I get back to that project, the sooner everyone will get to use it so...
-
Ok I wrote my first useful plugin, it's called decomet and is useful for cleaning up VHS recordings with black streaks or dropouts. However it relies on a special technique where you have to record the video twice. I've found that the dropouts especially appear at different spots in the video, so it's easy to remove them. The black streaks seem to stay more in the same area but the plugin still reduces them. It's not perfect but it does make a difference.
http://forum.doom9.org/showthread.php?goto=newpost&t=163049
Anyhow that has not much to do with your sample, just to inform you that I'm working on a dejitter plugin