Magic Lantern is a software enhancement that offers increased functionality to the excellent Canon DSLR cameras. We have created an open framework, licensed under GPL, for developing extensions to the official firmware.
Magic Lantern is not a “hack”, or a modified firmware, it is an independent program that runs alongside Canon’s own software. Each time you start your camera, Magic Lantern is loaded from your memory card. Our only modification was to enable the ability to run software from the memory card.
ML is being developed by photo and video enthusiasts, adding functionality such as: HDR images and video, timelapse, motion detection, focus assist tools, manual audio controls much more.
What a fascinating project. I knew you could put custom ROM images on digital cameras, but this seems like a far safer and less warranty-breaking way of extending and improving the functionality of your camera.
Magic Lantern is great. Speaking for video specifically, the camera it makes more sense to use with (if you don’t already own a Canon dSLR), is the Canon EOS M from 2012 (just make sure you don’t update their firmware to latest, as Magic Lantern won’t work on the latest firmware for that camera). They go by for $130 on eBay (coming from Japan usually) and it’s the best option for cinematic results at the lowest price possible. If you don’t have any lenses for it, or can’t use an adapter for your existing lenses, and you only have money for just one lens, I’d highly suggest the 7Artisans 25mm f/1.8 ($63). Plenty fast, middle of the road in terms of focal length, a good all-arounder. With a fast SD card, the whole thing won’t set you back for more than ~$210, which is crazy low if you consider that this is a camera that can do RAW video! The next raw option is a used BMPCC (that has major problems with battery life) for about $500, and then it’s the BMPCC 4k for $1300.
Here’s a video showing how different RAW and h.264 are in terms of quality: https://www.youtube.com/watch?v=yZgtMZNGr6g
With their standard firmware you get h.264 1080p at 24p & 30p at 45 mbps, which is a rather respectable bitrate. Turn on the D+ highlight priority to get 1 more stop of dynamic range in the highlights (you obviously lose it from the shadows, but for cinema, highlights matter during daylight). Then you specifically add either the VisionColor CineTech ($18) or Lightform C ($7). These are picture styles that will give you the most latitude in h.264 mode while looking perfectly cinematic (and I’ve tried at least 8-9 of the most popular ones). Here’s h.264 samples that use these picture profiles that I always liked: https://vimeo.com/47739361 and https://vimeo.com/101581724
After you install ML, you can shoot h.264 via it, but the added bitrate does not add any more quality over Canon’s standard bitrate (old codec implementation, doesn’t scale well). The real difference in quality comes only if you use ML for RAW video. First, you need to enable the overclocking of the SD controller, since otherwise the old controller can’t deal with the high bitrate of RAW. Don’t shoot at 14 or 16 bit as many people suggest, 12 bit is enough for RAW. There are two ways to shoot in RAW on the EOS M: one is in resized mode (so the full of the frame will be resized down to about 1736 pixels, and then you can resize in post to 1920×1080), or in crop mode, where you shoot higher resolutions (2500px or so), but you’d have to be zoomed in (so effectively, a wide lens become a long lens). Personally, I prefer the non-crop modes. The lower resolution is not worse than what professionals do when they soften in post their footage in order to look more like film, and not like modern, sharp video (again, I’m talking about cinematic results here — if that’s what you’re after).
Regarding post processing, the best way to handle it is to download the MLVApp: https://ilia3101.github.io/MLV-App/ No video editor supports that format well, plus, you’d need to process the RAW footage first before you edit it. Particularly pay attention to highlight reconstruction and bringing highlights down — among other things. Then you export in DNxHD or ProRES in medium quality, and you edit in your editor of choice. After you edit, even if the source video itself is not 4k, if you’re exporting for Youtube, you’ll see better encoding quality by Youtube if you feed it a 4k h.264 or prores video.
Follow Zeek for more (he has an EOS M and shows how to tweak it with ML for video purposes): https://www.youtube.com/channel/UCCn0RQHYheA41EudwmLnYKA/videos
Eugenia Loli,
Hi Eugenia, nice to hear from you! I remember you were into art, but I don’t remember if this stuff your profession or a hobby. Either way thanks for the insight.
I looked at the H264 versus raw comparison. I admit that I usually compare lossy codecs at the final stage of compression (rather than in-camera), but the differences tend to be more subtle. I was really taken aback by how big the differences were in that youtube video (which was itself transcoded to vp9), I can only assume that there were some strong post processing effects going on to explain the major differences in saturation because that’s not typically a biproduct of H264 encoding in and of itself.
Is it possible to disable in-camera post processing in the CANON 600D? I felt the “RAW” footage looked oversaturated, so I wonder if the raw video underwent more postprocessing during edit? Ironically some people like it better that way because they like extremely vivid colors even if they’re less natural.
I don’t know how well supported it is in pro-cameras, but several software H264 implementations do support encoding of 10bit+ levels, which theoretically makes the raw format less advantageous (assuming you can fully disable post-processing before encoding). Alas, I also have some security cameras that have disappointing results when encoding low light scenes in h264 because they have hard coded quantization tables that thow away too much data that the sensor picks up. In the dark, the camera firmware prefers to record the scene as pure black rather than record the least significant bits. In other words, the firmware hardcodes h264 parameters that throw data away even when it’s beneath the requested bitrate. So long as this is the case, I suspect many people might be getting a bad impression of h264 simply due to poor implementations rather than actual limitations of the codec itself. I wish they were open source so I could fix them
>I remember you were into art, but I don’t remember if this stuff your profession or a hobby.
Between OSAlert and becoming a visual artist, I did some filmmaking, mostly shooting music videos for Bay Area rock bands.
>some strong post processing effects going on to explain the major differences in saturation because that’s not typically a biproduct of H264 encoding in and of itself.
No effects. Just the fact that this is Canon’s very old h.264 implementation, from 2008. It’s very lossy at 8 bit, and a night and day between that and modern h.264 implementations as found at, let’s say, Panasonic cameras. There are other such comparison videos on youtube, showing the same effect.
> 10bit+ levels, which theoretically makes the raw format less advantageous
10bit is good, particularly for color grading and avoiding the banding effect, but it doesn’t give you nearly the highlight recovery you get with RAW. And if you want to do cinematic work, highlights are king. There’s a reason why the vast majority of films use the Alexa, even if their budget might be low: highlight rolloff and latitude.
>In other words, the firmware hardcodes h264 parameters that throw data away even when it’s beneath the requested bitrate.
Yes, but that’s because that’s a very old ARM cpu from the mid-2000s that Canon used for the EOS M. It can’t handle doing a better job. You can throw more bitrate at it using ML, but it still won’t give you better quality. This is true for most of the other Canon cameras too, except their very latest ones, and their Pro line. Their Pro line uses a completely different h.264 implementation btw, more modern, and on par with panasonic’s.
Any compact digicam you’d recomend now?
None. The manufacturers have even more removed features that used to be common place for video back in 2010 (e.g. locking video exposure), in order to push their interchangeable lens cameras. The EOS M is as compact as it goes.
@post by Eugenia Loli 2019-02-21 6:40 pm
…but I guess those old models, with features such as locking exposure or focus, which you used and recommended on your blog a ~decade ago, are still quite good? (if we’re going used goods anyway with EOS M…) Hm, odd that 3rd party firmware CHDK for Canon compacts haven’t restored those video features …or maybe it did? I also wonder if there are some iOS/Android apps to take control of the camera and record with film-like/cinematic results…
But generally, now that migration to 4k is way upon us, and I’m probably getting a 4k monitor this year, I wonder what’s the cheapest option to record decent (not great or necessarilly very film-like, just decent …for typical yt purposes) 4k video – probably 4k-capable smartphones… (though I see at local electronics market quite inexpensive, ~55EUR, Gotze & Jensen S-LINE SC501 4k sportscam, gotta research this one…)
BTW, Sony Vegas still the best affordable NLE? Or perhaps something new decent (or even free? ) showed up?
Ages ago, when my main camera was a Canon 600D (so around 2010-2011) I played for a while with Magic Lantern, but since I do only photography and it is targeted mostly at video, didn’t found it really useful for my use case. Later, when moved to a more powerful Canon camera, didn’t bother to try it again.
Anyway, it is interesting how it works: you put the firmware on the memory cards, when shooting with a card with ML on it, you have the additional feature, when shooting with clean cards, you don’t. Easy to play with it, easy to remove.
nicubunu,
I’ve done the same thing with a Canon powershot S5, which is a much lower class, but was what we could afford.
The magic lantern page says it’s not a hack, but it requires reverse engineering to get the camera to run 3rd party code (much like rooting/jailbreaking a mobile phone and other locked devices). I think they should call it a non-persistent hack that gets wiped from memory on every power cycle.
I really wish more vendors would actively encourage 3rd party programming interfaces because sometimes the most innovative development happens outside of the companies manufacturing hardware. Many household devices have powerful CPUs in them but only use a fraction of their full potential. When manufacturers lock out 3rd parties, it inevitably impedes innovation.