Shutterless ND simulation using FLV

Started by garry23, November 24, 2019, 06:07:20 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

garry23

I thought some may be interested in my latest experiments: http://photography.grayheron.net/2019/11/no-more-nd-filters.html

Many thanks to those who have helped me understand the 'video stuff'.

Cheers

Garry

c_joerg

I have been using this technique for a long time with my time lapse recordings to get more motion blur. LRTimelapse also has this feature. That's called 'Motion Blure'.
I usually use the combination of median and mean.

However, this method only works very well in very few cases. Simple waves can be smoothed out quite well.
But if the waves break with a white spray, then it will not look so nice anymore. The problem is the gaps between the individual shots that you cannot prevent.
Even objects that move slowly and are always overlapped a bit, look very choppy.
If in your example the branches would move through the wind, then that would not look so nice. I always separate through a mask the water surfaces of the rest of the scene.

https://www.youtube.com/watch?v=fyYJ3PRhlc0
EOS R

a1ex

Quote from: c_joerg on November 25, 2019, 09:56:18 AM
The problem is the gaps between the individual shots that you cannot prevent.

To my knowledge, when using FPS override, the gaps between shots can be very very small. I've hardcoded a limit of 10 units (FPS timer B units) without thinking too much about it; on 5D3's full-res LV, one unit is exactly 33 microseconds (timer A = 792, main clock = 24 MHz), and it's actually the time required to read out one line. At 5 FPS, a gap of 10 units will give an exposure time of 0.19967 seconds (0.165% gap), and this gap can probably be made even smaller. This is pure theory; I did not run any tests to confirm the actual shutter speed or gap size.

TLDR: you can prevent these gaps, at the expense of rolling shutter :)

c_joerg

Quote from: a1ex on November 25, 2019, 10:28:42 AM
To my knowledge, when using FPS override, the gaps between shots can be very very small. I've hardcoded a limit of 10 units (FPS timer B units) without thinking too much about it; on 5D3's full-res LV, one unit is exactly 33 microseconds (timer A = 792, main clock = 24 MHz), and it's actually the time required to read out one line. At 5 FPS, a gap of 10 units will give an exposure time of 0.19967 seconds (0.165% gap), and this gap can probably be made even smaller. This is pure theory; I did not run any tests to confirm the actual shutter speed or gap size.

TLDR: you can prevent these gaps, at the expense of rolling shutter :)

Then it's time to try it out...
So far I have only done this with Canon RAW.
EOS R

garry23

@c_joerg

Fully understand what you are saying.

Of course the technique is not new and it has limitations.

One 'advantage' of the technique, over 'just' using an ND filter, is that you have the ability to merging in data from one of the images.

Having said this, LE photography has its look.

I could see this working well for urban/building LE work as well as LE seascapes, eg against rock, etc, ie where there aren't many trees/things moving about ;-)

@a1ex

One thing I'm still ignorant of is how the fps override works. For instance if I have an ML shutter set at 0.5s and an fps override at 1, does this mean I will end up with a frame to frame 'gap, eg simplistically 0.5s in this example. Or does ML keep grabbing images with 'no/little' gap between frames?

Sorry for being thick.

a1ex

I don't get the question. FPS override 1 means 1 frame per second. Shutter set to 0.5s means an exposure time of 0.5s.

If you want to capture 0.5s exposures at 1 frame per second with no gap between frames, how would you do that?!

garry23

@a1ex

I understand the fps and the frame to frame gap limitation.

I guess I was thinking was there a way, with the current set up, to 'force' ML to capture near continuous images, up to the fps limit.

So that as long at the exposure was less than the 1/fps 'limit', with a buffer time of some kind, the system would keep taking and recording images in a frame-to-frame near-continuous fashion.

Thus, if I set fps override to, say, 1 FPS, and as long at my exposure was more than 1, ML would capture an MLV file with as many frames as could be taken.

I appreciate that for videographers that would not be that interesting, but as a photographer tool I see real advantages.

Cheers

Garry


I'll do some more thinking  ;)

garry23

@a1ex

Forgive the confusing post earlier. I get it now apart for one thing I didn't get.

QuoteTLDR: you can prevent these gaps, at the expense of rolling shutter :)

In my use case I guess I'm not worried about rolling shutter, thus should I use a particular  setting.

BTW after I set up for FLV recording, I mostly see that ML has adjusted the shutter. For example I set a shutter of 0.9s and an override FPS of 1. Once things settle down, I see ML has adjusted the shutter to 0.7s, but I can go into the ML exposure menu and adjust it back to, say, 0.9s, and based on your 10 units info, I guess I could go further, ie to minimise the frame to frame 'gap'.


a1ex

Asked and answered.

Quote from: a1ex on November 18, 2019, 10:11:17 AM
- the full-range shutter doesn't seem to work with FPS override, but can be tricked if you also enable expo override (set exposure time to 1/25 via expo override, and afterwards enable FPS override and crop_rec)

Quote from: a1ex on November 18, 2019, 12:17:43 PM
In 1080p25 with FPS override to 1 second, I've got 0.5" mapped to 1/50. ML tries to remap the available shutter range in movie mode (1/33 ... 1/4000) to 1/FPS ... fastest_shutter (source), but - for some reason - it remapped 1/33 to 0.7" or 0.8" instead of 1" in my tests; likely caused by conflicts between crop_rec and FPS override. With FPS override turned off, shutter speed mapping appears to work as expected.

garry23


garry23

@a1ex

If you have a few minutes, could you help me understand the following.

If I switch on fps and raw video etc in my script, and even if I wait, ie sleep, in the script for 20s: if I then check resolution, it is not on FLV.

If, however, in the script, I switch the ml menu on, select movie, and switch ml menu off, three times, the resolution shows FLV is set.

I know you said things needed care in setting up.

BTW I'm of using lua to switch the menu a few (3) times: I'm just trying to understand what's going on.

Cheers

Garry

Danne

It is common practice when changing crop_rec presets to also include a canon menu push in between for registry to settle.
I guess best way to get in deep you need to ready through a couple of pages here https://www.magiclantern.fm/forum/index.php?topic=19300.0

I think this works rather fast in lua(Jip-Hop added this to my cine.lua script added in my eosm branch):
lv.pause()
lv.resume()


garry23

@Danne

Great info.

I'll try it all out tonight, ie in my script that I'm developing.

Cheers

Garry

garry23

@a1ex

Sorry to bother you, but I need a little insight.

I'm trying to set the Desired FPS based on the shutter (t), ie fps = 1/(t + a bit).

If FPS is set to 1, when I use menu.get("FPS override","Desired FPS",1) I don't get 1 I get  7 or 8.

When I use menu.set("FPS override","Desired FPS",1) I get an FPS of 7 coming up.

Could you throw some light on this. As I say, I wish to explicitly set FPS from Lua.

a1ex

Here: https://bitbucket.org/hudson/magic-lantern/src/b3ced2ced2d5500ded0ef40866e96f298b897b75/scripts/api_test.lua#lines-399

Problem: the crop_rec_4k builds contain an older version of Lua, that IIRC doesn't really work when changing FPS or other "tricky" menus. I should fix that.

garry23

@a1ex

I feared you were going to say that.

I removed all my other scripts when developing my latest LE script.

I fear my focus scripts will now fail (but haven't tested yet) as they use the latest Lua fix.

Cheers

Garry

Danne

Could you test also this build? Not sure if I updated lua changes or not but a quick test would reveal if done:
https://www.magiclantern.fm/forum/index.php?topic=23041.msg216899#msg216899

garry23

@Danne

Will do tonight (UK).

Cheers

Garry

garry23

@Danne

Quote
Could you test also this build? Not sure if I updated lua changes or not but a quick test would reveal if done:
https://www.magiclantern.fm/forum/index.php?topic=23041.msg216899#msg216899

Just tested.

My other scripts and sleep vs msleep work, so I guess this is the latest Lua fix.

First problem, no ETTR module  :(

Second problem, my script doesn't seem to run, ie it won't set max res in the raw video module. Don't understand why.

As I'm off on a trip tomorrow, I'll revert to the experimental build, that I know I can use. Plus it has ETTR  ;)

Many thanks for trying to help.

Cheers

Garry

Danne

You can add any missing modules from the crop_rec_4k branch.

garry23


garry23

@Danne

Quote
Could you test also this build? Not sure if I updated lua changes or not but a quick test would reveal if done:
https://www.magiclantern.fm/forum/index.php?topic=23041.msg216899#msg216899

I've convinced myself this is not the latest Lua fix as I can't change the Desired FPS in Lua, ie see here from @a1ex

QuoteHere: https://bitbucket.org/hudson/magic-lantern/src/b3ced2ced2d5500ded0ef40866e96f298b897b75/scripts/api_test.lua#lines-399

Problem: the crop_rec_4k builds contain an older version of Lua, that IIRC doesn't really work when changing FPS or other "tricky" menus. I should fix that.

garry23

I thought some may be interested in my latest post: http://photography.grayheron.net/2019/12/field-testing-le-simulator-script.html

I've updated the script and believe it is now a useful tool, ie if you forget your NDs and wish to capture a Long Exposure image.

As usual I welcome any comments, especially ones that improve my workflow and/or script.

garry23

Updated script at: https://gist.github.com/pigeonhill/4efb0fdde3f4cc710dd1f7097ec0f821

The script now provides the option of taking an Advanced Bracket set after it has taken the MLV FLV Long Exposure simulation.

Just make sure that the Advanced Bracketing is set up as needed.

I've also added in several LV prompts.

Fully tested on a 5D3, so far.

garry23

Another update: this time to align the script with my workflow.

The script may be downloaded from here as usual: https://gist.github.com/pigeonhill/4efb0fdde3f4cc710dd1f7097ec0f821

The workflow goes like this:
1. Set up ML menus for the script, ie Advanced Bracketing to +/- and Auto and exposure simulated time in the ML bulb menu (but leave set off)
2. Compose
3. Select the LE Sim script from the ML Script menu and run it
4. From now onwards just follow the LV instructions
5. Once you have captured your MLV FLV LE the script will give you the option of taking an auto bracket set - which I advise you do it

'Develop' the MLV in MLV App, using the average TIFF preset (but note there is a 128 frame limit).

Post process in, say, Photoshop, and blend the LE sim with the other brackets you took.

As usual, I welcome others trying the script and providing feedback.

I've only tested the script on a 5D3 running the 4K experimental build.