tl/dr: Can I normalize a video's flickering exposure levels based on a subregion of the frame?

This feels like a typical issue: I've got a few hour long video of the beach that I'm speeding up. Ignore the repeated tblend=average,framestep=2 parts, those are to blend instead of dropping frames.

The problem is that it flickers. A palm tree was waving around, and the camera didn't have the exposure locked, so the sky changes radically. I tried to get around that with the scale=out_range=full,normalize=blackpt=black:whitept=white:smoothing=256 normalize filter, but it didn't work - I think it is normalizing the entire frame, not the big blue patch in the upper-left quadrant of the video.

What I want is to normalize (gamma correct?) the video based on the upper-left quarter of the frame - whatever will eliminate the flickering. Any suggestions?

ffmpeg -r 60 -i SOURCE_VIDEO.mp4 \
-vf "scale=out_range=full,normalize=blackpt=black:whitept=white:smoothing=256,tblend=average,framestep=2,tblend=average,framestep=2,tblend=average,framestep=2,tblend=average,framestep=2,tblend=average,framestep=2,tblend=average,framestep=2,setpts=0.015625*PTS" \
-r 60 -c:v libx265 -crf 18 -an OUTPUT_64x.mp4


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.