Phantom 4 Photo Request [ Rolling Shutter ]

:warning: Do not rely on the information on this topic to figure out rolling shutter readout times. The methods outlined below are significantly off (as I later found out).

Hey all :raised_hand:

I’m wondering if anyone has a Phantom 4 lying around and is willing to take a picture of a computer monitor.


I’ve started researching a way to add rolling shutter correction in ODM, and one challenge is figuring out estimates for the readout time of each camera (we’ll need a crowd-sourced database for this). A practical and cheap way to do this (that doesn’t require additional hardware) is to take a picture of a computer monitor (which has a known refresh rate frequency, usually 60, 70 or 120 hz) with a high shutter speed.

This is an example I captured with my Mavic Mini:

There’s 7 lines in the image.

If the refresh rate is 50hz and I count 7 lines, then a rough estimate of the readout time is:

readout = (1 / F * 1000) * L (ms)

F = frequency (hz)
L = lines count

~ 116 ms (for Mavic Mini)

I’m just trying to check whether this method is “good enough” and compare the values of a known drone for which we have a known readout estimate (the Phantom 4 should have a readout time of ~33ms per

So, who has a Phantom 4 (or another drone listed below) and can take a picture of their computer monitor / TV? Please also post the refresh rate of the monitor / TV. Set the shutter speed at the highest you can (adjust the ISO settings if the image is too dark, or increase the monitor brightness).

:warning: Make sure the image covers a section of the monitor from top to bottom! Just bring the camera very close to the monitor to do this (see the photo example above)

Model	Readout time
DJI Phantom 2	74
DJI Phantom 3	33
DJI Phantom 4	33
DJI Inspire 1 – FC330 30	30
DJI Inspire 1 – FC350 33	33
DJI Inspire 1 – X5	47
3DR Solo	30
GoPro Hero 4 Black	30

Thanks to anyone that helps :pray:


Oh, this is beautiful stuff!

I’ve got the 3DR Solo GoPro Hero4 Black covered :smiley:

Not to throw anything into the works here, but does monitor construction and transition time matter at all (gray-to-gray transitions)? Should we standardize on a fully white screen (open a text-editor full-screen) or something?

1 Like

Do you have a screenshot of your DJI Go settings ?

1 Like

Shutter speed was 1/2000 (or 1/4000?), ISO set to highest.

1 Like

I don’t think it should matter.

1 Like

So not totally maxing out shutter speed? Or is that the max for the mini?

1 Like

Don’t need to max out the shutter speed (set it to the highest you can while still distinguishing the lines). The mini could go faster than 1/2000 but the image was too dark then.


Ok, let me see what I can do. Any special trick for seeing/enhancing the banding? I haven’t seen the effect yet.

1 Like

1/5000 with my M2P doesn’t show anything obvious.

However, a spinning wheel with straight spokes at 1/2500 clearly shows distortions.


Phantom 4 Pro, 1/1000 second. I have two similar monitors side-by-side. It looked like this on one monitor, just white on the other monitor. Anti-flicker is enabled and cannot be disabled. The actual shots as recorded on the SD card did not show the stripes. However, by taking the MicroSD card out, the drone captured the image received by the controller (that’s my understanding of how it works) and saved it to cache/photos on my iPad.


DJI Mini 2. I was able to turn the anti-flicker off, so this is from the SD card.


Interesting method ! But be carefull with 2 things :

  • all modern sensors (except new ones high end full frame canon or others brand for example) are rolling shutters. They limit the effect in photography with mechanical shutter in front of sensor. So you don’t have this problem with mechanical shutter. For example P4P has a mechanical shutter whereas M2P the same sensor (Sony IMX183) is triggered with electronic shutter
  • Most sensors have one limitation with shutter speed : Even if you have mechanical shutter and if you reach high shutter speed, you could not have this speed with mechanical part. So they disable mechanical shutter above a certain shutter speed. P4P is like RX100 : it’s for shutter speed fastest than 1/2000 s

(Most people makes mistakes between rolling shutter vs global shutter and electronic vs mechanical shutter. Video and so liveview are indeed in rolling shutter mode …)

@pierotofy : MicMAc has developped his own How to use Rolling Shutter correction ? · Issue #142 · micmacIGN/micmac · GitHub
I’ll try to implement in NodeMicMac


Thanks all!

Gary, can you find information about the refresh rate of the monitor you took the picture of?


Looks like 60 Hz…



That should give a rough estimate of ~50 ms, which is off from the measured value from Pix4D’s blog by almost 2x (if you count 3 lines), or ~33.3ms (if you count 2 which is more spot on). I’m not sure if I need to count the yellow lines or the space in between the yellow lines.

Maybe we will need a more precise tool, or perhaps we can infer a better estimate starting from the rough estimates, then applying rolling shutter correction (once that’s built) using different values on different datasets to converge to an optimal estimate.

Just thinking of ways to make this scalable and cheap without relying on measuring hardware to get the actual readout time.


If I’m not mistaken, won’t we be unable to see the sync lines if our shutter speeds are clean multiple/divisors of the refresh rate?

For instance, all my panels at home are only able to be driven at 60Hz, and my GoPro only allows for shutter speeds of 1/60, 1/120, and 1/240, which show no sync lines across all 5 panels.

1 Like

I think you’re right.


No sign of banding at either frequency here -

1/50 sec 60.083Hz on the laptop, 74.973Hz on the right screen


1 Like

I think I see some lines on the monitor on the right at the higher shutter speed. What if you bring the camera closer?


I think the curved lines are Moire pattern due to drone pixel size and screen pixel size interference. The drone wont focus closer than 1 metre, but that screen is the same one as I posted yesterday, with no lines.