I needed an action camera to document DIYP’s trip to Photokina in September. I didn’t really want to have to fork out for a GoPro. It’s just not something I’d use often enough to justify the cost. So, I looked into the cheaper alternatives. This is when I found the Yi HD Action Camera, and some of the side-by-side examples I was seeing with the GoPro Hero3+ Silver just blew me away.
In a world of GoPros and a million cheap competitors, finding the good ones can often be difficult. It doesn’t help that every reviewer out there has a different definition of “good”. So, seeing side-by-side comparisons of footage taken with two cameras at the same time is usually the best way to really see the difference. Even if YouTube’s compression does often destroy what you really want to see.
I’d come across a lot of inexpensive action cameras in my research. Most of them were really not that great. But this one little white (yellow, or black) box kept popping up. We’ve even reviewed it here on DIYP (yes, it has become a little more expensive since then). When I delved further into it, it actually looked pretty amazing.
With a little work, this unassuming $100-or-less action camera could give me footage easily comparable to a GoPro Hero3+ Silver, at about a third of the price. It even beats it on framerate, because the Yi can do 1080p60 whereas the Hero3+ Silver can only do 1080p30.
I say with a little work because out of the box, it’s not that amazing. It has compression artifacts on high detail scenes and fast movement. The highlights and shadows blow out fairly easily in contrasty scenes. It has kind of a watercolour look denoising effect, and the in-camera sharpening actually kills more detail than it enhances. There’s also no built in LCD or real controls on the camera itself. It’s still better than the similarly priced competition, but it’s no GoPro. At this massive price difference, though, you can’t really expect it to be.
This is where “hacking” the camera through scripts comes into play. Basically you load a script onto your microSD card, put it in the camera and then turn it on. After that, you’re pretty much all set to go. For an idea of the kind of difference it can make, here’s a side by side comparison video. On the right is the stock Yi as it comes from the factory. On the left is a split screen showing the camera running the YiMAX-PRO script along with contrast corrected footage.
Like Magic Lantern for Canon DSLRs, the hacks aren’t permanent. Simply formatting your memory card will reset things back to default. But what can these hacks let us do to improve the image quality?
Well, let’s first look at the how, then we’ll get onto the what and the why.
So, how do we do this?
The basic script is simple. You create a text file called autoexec.ash and put it in the root directory of your microSD card. In this file you put various codes and commands that the camera reads on startup, allowing you to override defaults. Anything not specifically overridden remains at the default setting.
There are many things that you can override to make the Yi perform in a way it was never officially intended. You can change the bitrate, shoot RAW stills (yes, really), manually set the exposure, or hack the WiFi to sync multiple cameras. You can even run an FTP server on it to download footage straight to your desktop over the built in WiFi.
There’s an archive of many known commands and scripts on GitHub. You will want to make a careful note of your camera’s firmware version, and that for which the script was intended. Various addresses and commands are different depending on which version of the firmware you’re using. You can check which version of the firmware you’re using with the Yi mobile app for iOS or Android, and you can download the latest version here.
Here’s some of the things that I changed to give me the results that I wanted.
Wherever possible I shoot 1080p24, no matter what camera I’m using. It just lets me keep consistency between projects without having to convert footage to different framerates. At this resolution and framerate, the Yi saves at 10mbps. Fine if you just want to upload footage straight from the camera to YouTube or Facebook. Not so fine if you want to start editing clips, and making colour adjustments. It degrades pretty quickly.
With storage space so cheap these days, I don’t worry about recording bitrates as high as the camera can handle. 64GB UHS-I microSD cards are very inexpensive. Even at 50mbps, one of those will get you around 4 hours of footage. Your battery will die long before the card fills up. So, I shoot 1920×1080 at 24 frames per second with a 50mbps bitrate.
To tell it to do this basically just involves a single line in your autoexec.ash file.
writew [resolution address] [bitrate address]
There are two lists. One which corresponds to resolution addresses and another to bitrate addresses. Again, you’ll want to check your firmware version. These lists are for the current version of the firmware which is 1.2.13. In this list, you’ll usually see three listings for each resolution. I’m not entirely sure why this is, but personally, I just go with the first in the group and it doesn’t seem to cause an issue.