mv1080 on EOSM

Started by dfort, February 06, 2016, 04:56:46 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

dfort

The EOSM cannot currently record in mv1080 mode though it is within the capability of the camera and it seems to be a "possible" Magic Lantern feature request.

Quote from: a1ex on January 30, 2016, 09:04:10 AM
Quote from: dfort on January 30, 2016, 02:58:37 AM
I'm wondering if there is any possible way to get mv1080 on the EOSM but I take it that has been tried before.
Quote from: a1ex on January 30, 2016, 09:04:10 AM
It wasn't tried too hard ;)

Looking a bit in forum history, it seems like in the very first implementations of raw video, there was a (undocumented) way to do it: http://www.magiclantern.fm/forum/index.php?topic=5860 and http://www.magiclantern.fm/forum/index.php?topic=12022

Maybe I should revisit it, but that would be a different topic.

Quote from: dmilligan on February 06, 2016, 05:10:05 AM
Quote from: dfort on February 06, 2016, 03:31:19 AM
a1ex explained that there are other ways to capture raw video. Perhaps one of these alternate methods can capture the data after it has gone through the focus pixel annihilation process?
I wouldn't really say there are "other ways" to capture raw video, there are just other possible video modes. Capturing them is the same, you just have to figure out how to get Canon firmware to put the camera in those modes. The EOSM is unique b/c Canon firmware doesn't put it into mv1080 until you start recording (H.264). So if you want to record raw video on mv1080, you have to do it while also recording H.264 at the same time (ML prevents you from doing this now a days, but it was possible in some old versions when raw video just came out). That or do some reverse engineering to figure out how to put the camera in mv1080 without starting recording. All other cameras go into the video mode you selected in the Canon menu immediately, so actually mv1080 is pretty much the "default".

Let me try to sell this feature request by stating some of the reasons I believe why the lowly EOS-M is perhaps just as important to moving Magic Lantern forward as the 5D mark III.

The camera is the least expensive of all the ML capable cameras which makes this the ideal model to experiment without being too concerned about bricking an expensive piece of photographic equipment. It is so affordable that multiple bodies can be had for less than the cost of higher end models. In fact you can get 10 EOSM bodies for the price of one 5D3--I myself have 4 bodies, yeah I'm crazy.

At first the EOSM may seem radically different from the other Canon models because it is a mirrorless but the internals are very similar to the DSLR's. The advantages  include not having to lock up a mirror to get into Live View and a shorter lens flange distance so many lenses can be adapted for use on this camera.

Canon EOSM with C-mount lenses

Though the EOSM may feel like a toy compared to the DSLR's it actually has quite a rugged metal body and can stand up to the riggers of a documentary project I'm working on. I planned to use it as a spare body for a 5D3 setup but it proved capable enough as the 'A' camera. (When I was a professional still photographer back in the day I would never consider going on a job without a backup camera body.)

EOSM documentary rig

The EOSM can also be an ideal replacement for a director's viewfinder and with a PL adapter the camera can be used to look through professional cine lenses. Adding mv1080 also gives the capability of shooting much higher quality tests than with H.254 video.

EOSM with PL mount adapter

Adding mv1080 on the EOSM will also elevate this platform to the same level as the rest of the Magic Lantern capable cameras though filmmakers may want to dress it up a bit in order to be taken seriously.

EOSM Shoulder Rig with Follow Focus

There are disadvantages to the EOSM. One problem for video shooters is the short battery life though extra batteries are very affordable and it is very simple to rig up external power supplies. Another problem is that it responds slower than other cameras in still photo mode though it is just as quick as the other cameras in video mode. Speaking of still photo mode, there's that pesky shutter bug when using Magic Lantern but that's a different topic.

cmccullum

Reeeeeeaaaal quick, dumb question... What is mv1080?

dmilligan

The name ML code uses to refer to the video mode the camera is when recording 1080p video. It's full frame with line skipping and/or binning, and the actual raw resolution is slightly less than 1920x1080 on most cameras (except 5D3).

cmccullum

Ahh thank you. So the idea is to (re)enable 1080p raw video on the eos-m?

dfort

Looks like I forgot to explain what mv1080 is for users though developers, who are the target audience for this topic, know exactly what it is.

Thanks dmilligan for that concise explanation. Just to be complete, here is a table showing all the Magic Lantern video modes.

Mode          Buffer Size   Notes
mv1080      - 1808x1190  -  not available on the EOSM.
mv720       - 1808x727   -  needs to be stretched by 1.67x vertically - up to 50/60 fps except on EOSM.
mv640       - 1808x1190  -  basically the same as mv1080 mode.
mv1080crop  - 1872x1060  -  highest resolution and largest sustainable frame sizes on all cameras.
mv640crop   -            -  not possible.
zoom        - 2592x1108  -  same 5x magnification as mv1080crop but can pan around sensor. Performance not as good as mv1080crop.


This was determined by experimentation, not just reading code which is something I still need to learn. Note that the table shows the raw buffer sizes, the final image is cropped down even further. The maximum possible resolution for these APS-C cameras is 1728x1158. That's too high of a data rate for raw video but it is not a problem when the frame is run through the on board H.264 compressor.

When using the full un-cropped area of the sensor the Canon firmware skips pixels in order to reduce the 18 megapixel resolution down to HD video which is about 2 megapixels. In mv1080 mode it does this by using only every third pixel horizontally and every third pixel vertically. In mv720 mode it uses every third pixel horizontally but then it takes every fifth pixel vertically.

Another anomaly of the EOSM is that m720 raw doesn't inherit the frame rate of H.264 1280x720 50/60p. I don't see that as a problem because that high of a frame rate requires reducing the image size or throttling back the frame rate but that disables audio recording. The problem for the EOSM is that the mv1080 image quality is much better than mv720.

When shooting in crop mode the EOSM matches the other APS-C cameras but then why get a large sensor camera and just use a tiny area? You're missing out on the filmic quality that made shooting on DSLR cameras popular in the first place.

As a side note there has been several discussions about taking the full resolution of the sensor and running it through the on board JPEG compressor to achieve 4k video. That's apparently how the EOS-1D C and 1D X Mark II handle 4k video. Let's not ask for that on the EOSM just yet.  ;)

dmilligan

Couple of nitpicks:
Quote from: dfort on February 08, 2016, 05:04:18 AM
The maximum possible resolution for these APS-C cameras is 1728x1158.
The buffer sizes of the video modes varies greatly from camera to camera. Some cameras don't have mv1080crop, I think only 60D has mv640crop. I wouldn't actually say that mv1080  "- not available on the EOSM". It is available, you just can't record raw video in that mode currently.

I think there's a chart around somewhere with all these sizes for all cameras (and other things too like FPS capabilities).

rbrune

Having this implemented would be really sweet and I'm motivated to look into it.

We have to figure out a way to set the EOSM to mv1080 when starting recording in the mlv module. A starting point would be to take a look at the 650D (is this the most similar firmware/hardware?) and see what it does when switching to 1080p mode in the canon menu and see if a similar function could be called in the EOSM firmware.

And I think in a couple of places inside the mlv module it is assumed that mv1080 mode on EOSM is actually only mv720 mode - this needs fixing if we ever manage to actually switch modes correctly.

dfort

@dmilligan

Thanks for being nitpicky. Details count when you're doing quality work. My ML world is currently limited to the EOSM/100D/700D and 5D3 but it is rapidly expanding. I think this is the chart though some of the data for the cameras that I tested seems off.

http://www.magiclantern.fm/forum/index.php?topic=6215.0

@rbrune

The 650D is very similar but the issue seems to be that the EOSM is always in Live View and doesn't switch into mv1080 mode until it starts recording. Looking over your posts it looks like you have the skills to do this and you've got an EOSM. Please let me know if there's anything I can do to help. I bookmarked your bitbucket page, mine is https://bitbucket.org/daniel_fort/

[EDIT: Looks like you were aware about this issue long before me!]

otherman


ourfriendtheatom

I would love for this to happen as well.

DeafEyeJedi

+1 ... Got my vote on this one as well!
5D3.113 | 5D3.123 | EOSM.203 | 7D.203 | 70D.112 | 100D.101 | EOSM2.* | 50D.109

Teamsleepkid

please please make this happen :D
EOS M

madz

+1
love this little camera
650D.104 | EOSM.202

jetrotal

+1!
The EOS M became a great replacement for my old t3i!

Quick question:
Where can i research about c-mount lenses for the EOS M?

I'm looking for cheap cctv lenses, but i can't find any details about how they would work on a eos m...


dfort

This keeps coming up. Basically all you need is a EF-M to C-mount adapter. Some lenses like the Fujian 35mm will cover the whole sensor while shorter lenses will vignette in full frame but still work fine in crop mode video.

http://magiclantern.fm/forum/index.php?topic=15660
http://magiclantern.fm/forum/index.php?topic=10036.0

jetrotal

Hey, thanks for the reply

I have some more questions about adapted lenses.

Does the C-mount work with CS-Lenses?
And what about D-mount lenses, is there any way to adapt them to work with eos-m and keep infinity focus?

Thanks once again, and sorry if i'm changing the focus of this thread.

dfort

Yes we are getting off topic.

In any case, CS mount has a shorter flange distance than C mount so even though a CS mount lens will screw into a C mount adapter it won't work properly--you lose the ability to focus at infinity. It isn't an issue going the other way. I once had a CS mount video camera and it could use C mount lenses by using a 5mm adapter ring. Of course that doesn't help us EOSM users. D mount lenses were made for 8mm movie cameras. Again, no adapters that I know of. However, if you really want to mount these lenses on your camera you might be able to get a machine shop make you one. Though it is probably not worth the cost.

[EDIT] So it turns out that there are D-mount to C-mount (as well as C to D) adapters available on ebay and amazon. They are simple and inexpensive and at first it seems like it would do the trick but there seems to be a problem. The flange distance is shorter on D-mount and the adapter doesn't compensate for this so focusing at infinity is not possible. Too bad, there are some rather interesting D-mount lenses out there.

jetrotal

I found this 3d printer model of the C-mount adapter:


And then i tried modifying the model, by pushing the lens mount area 5mm closer to the sensor, like this:


i think the adapter will fit into the eos-m body without hitting anything.
I'm looking after some places here to print it and test it with CS lenses.

dfort

Interesting, the only thing I would caution you about is that you might get a CS mount lens that is wide at the flange. This is an extreme example of one of my C-mount lenses:



In some cases you can grind of a piece of the lens but it would be better if you can design your adapter so you can avoid this as much as possible.

http://videoproducent.blogspot.com/2011/10/return-of-15-pentax-6mm-12-succes-story.html


Teamsleepkid

To be honest I can't tell if my c mount lenses are slightly out of focus at infinity or if I'm just running into resolution limitations with the eos m. Mv1080 please!!
EOS M

dfort

@Teamsleepkid - thanks for getting the discussion back on topic!

Yeah, some of my cheaper C-mount CCTV lenses are quite soft. I guess that's part of the attraction to these lenses. However, I'd prefer to use my Canon EF-M lenses in non-cropped mv1080 mode but as you know the EOSM shoots mv720 in non-cropped mode.

Teamsleepkid

yeah. we need mv1080 like the desert needs the rain. can't you ask some of your friends dfort?
EOS M

dfort

Quote from: Teamsleepkid on October 18, 2016, 06:16:33 AM
...can't you ask some of your friends dfort?

That's the point of this topic. We're all friends here--well, sort of.

Thing is that ML development is a volunteer effort. Each developer has a different priority over what they want to work on. I've contributed some minor fixes but re-writing the code to get mv1080 on the EOSM is way beyond my abilities. I am reading up on programming and trying to get familiar with the ML code but the hints I've been getting from my developer friends is like explaining the theory of relativity to a cat.

Teamsleepkid

"the easiest way would be to record RAW and H.264 simultaneously. This one fits into easy coding tasks." Alex said that. I think he can do it...
EOS M

dfort

Hey @Teamsleepkid thanks for the hint.

Quote from: Teamsleepkid on October 23, 2016, 03:25:53 AM
Alex said that. I think he can do it...

Alex can do many things but he's a busy guy. In addition, this is a community so he doesn't do everything by himself. Let's take a closer look at his statement. The quote comes from the topic, REC COMMAND via the HDMI trigger - Atomos. This is mainly for 5D3 users and in a later post he suggests, "The easiest way should be to select the SD card from Canon menu (since H.264 will use that), and force RAW/MLV recorder to use the CF drive regardless of the current card choice." Obviously something that doesn't apply to the EOSM. Still, there's hope and the best clues came here:

QuoteSince the H.264 encoder is a hardware chip, I don't expect a significant performance drop. Here's a hint from somebody who tried: http://www.magiclantern.fm/forum/index.php?topic=5860.msg42534#msg42534

It even looks like this was a bug in some versions: http://magiclantern.fm/forum/index.php?topic=10259

So, definitely a task for anybody who wants to jump in and code something easy.

Since it was considered a bug a while back maybe there was a comment in a commit to fix it so I searched the commits on bitbucket for H.264 and found some interesting things. There were a couple commits made back in March 2014: raw_rec/mlv_rec: if you somehow managed to start recording H.264, let it stop and EOS-M seems able to change frame iso / shutter timer only while recording H.264. ETTR and other tools that depend on these settings should fall back gracefully. Both of these were made to prevent recording H.264 and raw/mlv simultaneously so there must be a way to force simultaneous recording. It might be possible to stop the H.264 stream once raw recording is triggered so that it doesn't impact the SD card write performance for the raw video but that should probably be an option so that triggering an external recorder while recording raw would also be possible--killing two birds with one stone so to speak, one for the EOSM and another for the 5D3.