Yi 4k custom bitrate mod and telnet.

Updated to firmware 1.7.8

Let me know if anything broke.

I have tested it with a custom autoexec.ash and it worked for the resolutions and bitrates I wanted.
But I have a couple of questions about live streaming customization:
https://github.com/irungentoo/Xiaomi_Yi_4k_Camera/tree/0e15af728312787abed956626e0b3822ad1416fa/live
a: what is this value about and which are the options? : "ak":"0"
b. can I set higher "rate":"0" than "3" = 1.37 mbs video? (I have tried streaming with value "rate":"5" It did started streaming but I am not sure which was the bitrate)
c: what is this value about and which are the options? : "dur":"0"
 
Last edited:
Hi, I just upgraded to 1.7.17 in the hope that the SD Card issue with the Toshiba Exceria, which was introduced with the upgrade to 1.7.8 was fixed (FYI: it was not fixed....), and I noticed that now if you set to "high quality", the bitrate is 100Mbit. This was not advertised on the Yi website....did I miss anything?
 
Last edited:
Hi, I just upgraded to 1.7.17 in the hope that the SD Card issue with the Toshiba Exceria, which was introduced with the upgrade to 1.7.8 was fixed (FYI: it was not fixed....), and I noticed that now if you set to "high quality", the bitrate is 100Mbit. This was not advertised on the Yi website....did I miss anything?

the bitrates have been increased because a bunch of well-intentioned idiots on Yi's facebook group complained about the bitrates being too low.

the old High bitrates are now the new Medium bitrates, and are more than high enough to be transparent without causing overheating issues.
 
Last edited:
the bitrates have been increased because a bunch of well-intentioned idiots on Yi's facebook group complained about the bitrates being too low.

the old High bitrates are now the new Medium bitrates, and are more than high enough to be transparent without causing overheating issues.

understood....I should follow the Facebook group a bit more....:)
 
it's hard to keep up with it. too many dummies trying to get warranty replacement cuz they dropped the camera and shattered the lens.
 
Hi everybody, I’m pretty new to this stuff: I own a YI 4K action cam and recently found this thread about the hack/mod to increase the bit-rate and quality of the videos shot with this cam.

I was wondering how this would effectively increase the overall quality of the videos that will be uploading on YT. I have tried this hack and it does indeed work. The only thing I noticed is that, once edited in post and exported the video in MP4 format with H.264 codec, it ends up showing an average bit-rate which in no cases exceeds 78Mb/s. I presume this is due to the limitations of the H.264 codec itself. My video editing programs allows 4K editing and provides different formats for exporting videos but, as far as I can see, not even one goes any further than about 70-80Mb/s. So, the obvious question is: what’s the point in using this hack if , in the end, the final edited video won’t go any further than the maximum bit-rate that the codec used allows? In other words, why shoot at 100+ or 120+ Mb/s bit-rate if later, and in post, when exporting, I can't achieve a video with that very high bit-rate?
Shall I use other video editing programs or is it just a matter of changing the codec and/or format used for exporting videos? In that case, which format and/or codec would you recommend? And why? Thank you for any help.
 
Last edited:
why shoot at 100+ or 120+ Mb/s bit-rate if later, and in post, when exporting, I can't achieve a video with that very high bit-rate?

This camera produces very low complexity video. It uses a hardware encoder to encode the video in real time on a small chip that can run for 2 hours on a small 1400Mah battery so it's going to be much lower quality than a video at similar bitrate encoded slowly on a normal computer.

Even at 120mb/s the video is bitrate starved, just try comparing individual frames to the pictures taken by the camera and you will see that the video is much lower quality.
 
This camera produces very low complexity video. It uses a hardware encoder to encode the video in real time on a small chip that can run for 2 hours on a small 1400Mah battery so it's going to be much lower quality than a video at similar bitrate encoded slowly on a normal computer.

Even at 120mb/s the video is bitrate starved, just try comparing individual frames to the pictures taken by the camera and you will see that the video is much lower quality.
Thank you for your feedback. In the meantime, I made an experiment. I took one simple clip shot with the hack, loaded into my favourite video editing program and immediately exported (without any editing at all, just for the purpose of seeing what the final encoded file was like) using another format (MOTION-JPEG-AVI) and realized that the exported file had an average of 155+ Mbps bit-rate!, i.e almost double what so far I normally achieved when exporting a video in MP4 with the built-in H.264 codec. The only (obvious) drawback was the file size which was really HUGE for a 9secs clip (186MB). The clip was shot in 4K ultra resolution, 24fps. In theory it should have been at 4000x2700 in resolution, according to the hack. My video editing program (as well as W10), though, still says it's a 3840x2160 clip! Anyway, apart from that, it looks like I can achieve a lot better bit rate with this format when exporting. I'm using the latest firmware 1.8.9 build 2695r on my YI 4K (video quality set to "HIGH" in the YI settings).

Any idea as to why the clip resolution was not as it should have been (4000x2700)?
 
Last edited:
....is the hack on GitHub, valid for firmware 1.7.8, still valid for firmware 1.8.9? I did not know that....good to know then...

p.s what u say does not resonate well with me...what do u mean "loaded into my favourite video editing program and immediately exported" ?.....why doing that? to see what? if u want to see the information on the file (i.e. bitrate, coded, resolution), just play the file with MediaPlayerClassic (MPC-HQ) and in the properties panel u see all the info.

moreover...do not get surprised about the 155Mbit final bitrate...it all depends on the settings u use when u export the file....regardless whether u edit the video (crop, color grading, fx,....) or just load it into the timeline and then export it by re-compressing with a different codec (MJpeg in this case) and different container (Avi rather than MP4) ;-)
 
....is the hack on GitHub, valid for firmware 1.7.8, still valid for firmware 1.8.9? I did not know that....good to know then...
No, there's a specific mod update for firmware 1.8.9, just released (16 days ago), but have to do more testing on that as I tried again this hack only yesterday with the new firmware and, as I said, I found that the 4K ULTRA mode doesn’t seem to produce a clip with 4000x2700 resolution as expected: both W10 and my video editing program still say that’s a clip with standard 3840x2160 UHD resolution. Am I missing something? Furthermore, should the new non-standard resolutions be displayed accordingly also in the very same menu list of available modes?


p.s what u say does not resonate well with me...what do u mean "loaded into my favourite video editing program and immediately exported" ?.....why doing that? to see what? if u want to see the information on the file (i.e. bitrate, coded, resolution), just play the file with MediaPlayerClassic (MPC-HQ) and in the properties panel u see all the info.
My aim was to see if I could somehow improve the overall video quality for my YT videos by shooting with higher bit-rates, edit them (mixing clips, doing some cropping, fx, titles and music etc) and then export the final video while at the same time achieving a better bit-rate by exporting in a format which will preserve much of the video’s original bit-rate: if I export using the MP4 format with the H.264 codec, my videos (all of them) will not go any further than the maximum 80000 kbits/s allowed with that codec. So, unless I’m able to export with a different format and with a much higher bit-rate (at a cost of a much larger produced file) there’s no point in using this hack, in my opinion: why shoot at 120 Mb/s if, once finished editing my video and exporting in MP4, I can’t achieve a better bit-rate (more than the usual 70-74Mb/s). So, my attempt was to see how much further I could go by shooting clips at 100Mb/s, or even more, putting them together in a timeline and exporting the final video with a different format (other than MP4 and H.264 codec) and then see what I would have eventually achieved as far as file size and overall bit-rate goes. Just to have some figures, I picked up an old project shot at the standard bit-rates that the YI 4K gives when shooting in 4K, and re-exported the whole video using the MOTION-JPEG-AVI format instead. Well, the final video (4m:15s long) took nearly 2 hrs to render and came up being as much as the really astonishing 13.6GB in size, against the just 2.1GB of its counterpart exported in MP4. I wonder what I would have come up with if the clips were shot (at the time) with the new bit-rates instead!

So, to recap, I just wanted to make some experiments and see how much higher I can push my videos, thus achieving better overall bit-rates on them, by using, for the purpose, clips shot with the new and higher bit-rates using this hack, without going too high as far as file size is concerned.
In other words, does it make sense to use this hack, therefore make videos that will require some post and editing, and export them using, still, the MP4 format, given its intrinsic limitation (the H.264 codec will cut-down the original videos bit-rates and render a file that goes no higher than 80000 kbits/s). Or will I still achieve a better video quality anyway, using these clips, even if the H.264 codec will cut-down (reduce) the average bit-rate of the final video?

Perhaps, the answer to this question was given by irungentoo:
...It uses a hardware encoder to encode the video in real time on a small chip that can run for 2 hours on a small 1400Mah battery so it's going to be much lower quality than a video at similar bitrate encoded slowly on a normal computer.

moreover...do not get surprised about the 155Mbit final bitrate...it all depends on the settings u use when u export the file....regardless whether u edit the video (crop, color grading, fx,....) or just load it into the timeline and then export it by re-compressing with a different codec (MJpeg in this case) and different container (Avi rather than MP4)
Yes, that's clear to me, I know that and how it works.
 
Last edited:
My aim was to see if I could somehow improve the overall video quality for my YT videos by shooting with higher bit-rates, edit them (mixing clips, doing some cropping, fx, titles and music etc) and then export the final video while at the same time achieving a better bit-rate by exporting in a format which will preserve much of the video’s original bit-rate: if I export using the MP4 format with the H.264 codec, my videos (all of them) will not go any further than the maximum 80000 kbits/s allowed with that codec. So, unless I’m able to export with a different format and with a much higher bit-rate (at a cost of a much larger produced file) there’s no point in using this hack, in my opinion: why shoot at 120 Mb/s if, once finished editing my video and exporting in MP4, I can’t achieve a better bit-rate (more than the usual 70-74Mb/s).

No: it all depends on the program you use. 80Mbit is not a limitation of the h264, or the MP4 container. If you want, you can encode a file in h264, within a MP4 container, at a bitrate much higher than 150Mbit....try using a different program, such as Adobe Premiere for example....
 
No: it all depends on the program you use. 80Mbit is not a limitation of the h264, or the MP4 container. If you want, you can encode a file in h264, within a MP4 container, at a bitrate much higher than 150Mbit....try using a different program, such as Adobe Premiere for example....
Oh, thank you very much for the info: so, it’s my program then. I thought it was an intrinsic limitation of the codec given that MAGIX Video Deluxe, along with about a dozen of different export formats, allows to create a custom export profile or modify the (basic and predefined) key parameters of an export pre-configured profile. I do remember to have tried, in the past, to modify the bitrate in the proper dialog window but, for some strange reasons, it did revert to the original pre-configured 80000kbits setting. Will have another look at that issue and see if it’s been solved/fixed with the later software update.

If it does work, good to know that I can achieve a better bit-rate in all my exported videos: in that case, it’s a matter of figuring out a good compromise between a much higher bit-rate and a not too large produced video file.

Adobe Premiere will surely be my next step as I move on more towards "pro" stuff. For the time being I just can't (and am not willing to) pay any monthly fee for using a program: I just prefer to buy it (MAGIX Video Deluxe, along with CyberLink's sw suites, though both are just not as Pro as the Adobe products, are more than enough for me).

P.S. problem fixed. I picked up an old project created with MAGIX Video Deluxe 2017 and re-exported it using same the usual export format (MP4, codec H.264) but, this time, I managed to modify the "profile" and pushed the bit-rate value, just as a first try, to 96000 kbits and it did work! This time the produced file size was 2.5GB in size with around 91Mb/s bit-rate, against the 1.6GB of the previously exported video, with just 61MB/s bit-rate. Thanks for the tip!
 
Last edited:
No, there's a specific mod update for firmware 1.8.9, just released (16 days ago), but have to do more testing on that as I tried again this hack only yesterday with the new firmware and, as I said, I found that the 4K ULTRA mode doesn’t seem to produce a clip with 4000x2700 resolution as expected: both W10 and my video editing program still say that’s a clip with standard 3840x2160 UHD resolution. Am I missing something? Furthermore, should the new non-standard resolutions be displayed accordingly also in the very same menu list of available modes?



My aim was to see if I could somehow improve the overall video quality for my YT videos by shooting with higher bit-rates, edit them (mixing clips, doing some cropping, fx, titles and music etc) and then export the final video while at the same time achieving a better bit-rate by exporting in a format which will preserve much of the video’s original bit-rate: if I export using the MP4 format with the H.264 codec, my videos (all of them) will not go any further than the maximum 80000 kbits/s allowed with that codec. So, unless I’m able to export with a different format and with a much higher bit-rate (at a cost of a much larger produced file) there’s no point in using this hack, in my opinion: why shoot at 120 Mb/s if, once finished editing my video and exporting in MP4, I can’t achieve a better bit-rate (more than the usual 70-74Mb/s). So, my attempt was to see how much further I could go by shooting clips at 100Mb/s, or even more, putting them together in a timeline and exporting the final video with a different format (other than MP4 and H.264 codec) and then see what I would have eventually achieved as far as file size and overall bit-rate goes. Just to have some figures, I picked up an old project shot at the standard bit-rates that the YI 4K gives when shooting in 4K, and re-exported the whole video using the MOTION-JPEG-AVI format instead. Well, the final video (4m:15s long) took nearly 2 hrs to render and came up being as much as the really astonishing 13.6GB in size, against the just 2.1GB of its counterpart exported in MP4. I wonder what I would have come up with if the clips were shot (at the time) with the new bit-rates instead!

So, to recap, I just wanted to make some experiments and see how much higher I can push my videos, thus achieving better overall bit-rates on them, by using, for the purpose, clips shot with the new and higher bit-rates using this hack, without going too high as far as file size is concerned.
In other words, does it make sense to use this hack, therefore make videos that will require some post and editing, and export them using, still, the MP4 format, given its intrinsic limitation (the H.264 codec will cut-down the original videos bit-rates and render a file that goes no higher than 80000 kbits/s). Or will I still achieve a better video quality anyway, using these clips, even if the H.264 codec will cut-down (reduce) the average bit-rate of the final video?

Perhaps, the answer to this question was given by irungentoo:



Yes, that's clear to me, I know that and how it works.

Man do yourself a favour and get your head around bitrates as you're going to waste a whole lot of time achieving nothing. Increasing the bitrate of a H.264 file by reencoding it in another format (or the same) is a fools errand. It's like getting a jpg and saving it as a TIF. All you get is a bigger file with no increase in quality. In fact, in the case of your example, you are getting a bigger file, and making the quality worse as you're reencoding a lossy video so there's a second round of quality loss. It only ever makes sense to reencode down to a lower bitrate, regardless of format (unless your want to reduce GOP or go iframe to make editing faster).
 
Man do yourself a favour and get your head around bitrates as you're going to waste a whole lot of time achieving nothing. Increasing the bitrate of a H.264 file by reencoding it in another format (or the same) is a fools errand. It's like getting a jpg and saving it as a TIF. All you get is a bigger file with no increase in quality. In fact, in the case of your example, you are getting a bigger file, and making the quality worse as you're reencoding a lossy video so there's a second round of quality loss. It only ever makes sense to reencode down to a lower bitrate, regardless of format (unless your want to reduce GOP or go iframe to make editing faster).
Perhaps I didn’t explain it too clearly and, BTW, it was all clarified by my subsequent post in reply to Mighty777 which, perhaps, you haven’t read. I was NOT trying to increase the (original) bit rate of a H.264 file: I wanted to PRESERVE, as much as possible, its bit-rate (well, the original clips’ bit rate, before any editing takes place) when exporting, thus preserving the original material quality, given the fact that at the time I wasn’t aware that it was possible, when exporting, to use, in my nle sw, CUSTOM settings, by manually modifying them (namely average and max VBR values, for peaks, along with constant/variable bit rate mode, GOP length & structure etc) instead of just those DEFAULT settings (and others) proposed in the dialog window when I select MP4 export mode. So far, as a matter of facts, I haven’t been saving any of my videos in that AVI mode, for obvious reasons. The experiment had only been carried out to find out what result it would have produced, no more than that. As I am pretty new to this stuff and, particularly, all the technicalities behind it, it’s obvious that I am asking here for advice as many others will do. It’s called LEARNING curve :) and, BTW, this is a general matter that thousands of people have been asking for or posting questions about on several forums. Just as an example: https://vimeo.com/forums/topic:33517 . My question was exactly the same as the one asked for in that topic.

Before using custom settings and working out how to achieve them, and without getting errors during the rendering process (it happened!), I could only get final encoded files that had a significant drop off, as far as overall video’s bit rate goes, with respect to the clips’ original video quality. That led me to the initial question: “why shoot at 100Mb/s....”.

Now with some more experiments and testing (I primarily work on 4K material) I normally choose, along with higher bit rate values, a HIGH export profile (level 4.2) and BEST coding quality. And the videos look way better than before. Will obviously have to do more testing on that and try other (different) settings and see what the final result is going to be, given that I have no way to know what happens next, i.e. once the video is uploaded to YT, for instance, as it has its own compression/re-encoding techniques, or indeed any other platform.

To use the same words used by Aaron in the post linked above: “Hopefully I can find some wide range VBR settings that allow me to get maximum quality in complex scenes with a bit smaller file size that a full high bit rate encode.”
 
Last edited:
Perhaps I didn’t explain it too clearly and, BTW, it was all clarified by my subsequent post in reply to Mighty777 which, perhaps, you haven’t read. I was NOT trying to increase the (original) bit rate of a H.264 file: I wanted to PRESERVE, as much as possible, its bit-rate (well, the original clips’ bit rate, before any editing takes place) when exporting, thus preserving the original material quality, given the fact that at the time I wasn’t aware that it was possible, when exporting, to use, in my nle sw, CUSTOM settings, by manually modifying them (namely average and max VBR values, for peaks, along with constant/variable bit rate mode, GOP length & structure etc) instead of just those DEFAULT settings (and others) proposed in the dialog window when I select MP4 export mode. So far, as a matter of facts, I haven’t been saving any of my videos in that AVI mode, for obvious reasons. The experiment had only been carried out to find out what result it would have produced, no more than that. As I am pretty new to this stuff and, particularly, all the technicalities behind it, it’s obvious that I am asking here for advice as many others will do. It’s called LEARNING curve :) and, BTW, this is a general matter that thousands of people have been asking for or posting questions about on several forums. Just as an example: https://vimeo.com/forums/topic:33517 . My question was exactly the same as the one asked for in that topic.

Before using custom settings and working out how to achieve them, and without getting errors during the rendering process (it happened!), I could only get final encoded files that had a significant drop off, as far as overall video’s bit rate goes, with respect to the clips’ original video quality. That led me to the initial question: “why shoot at 100Mb/s....”.

Now with some more experiments and testing (I primarily work on 4K material) I normally choose, along with higher bit rate values, a HIGH export profile (level 4.2) and BEST coding quality. And the videos look way better than before. Will obviously have to do more testing on that and try other (different) settings and see what the final result is going to be, given that I have no way to know what happens next, i.e. once the video is uploaded to YT, for instance, as it has its own compression/re-encoding techniques, or indeed any other platform.

To use the same words used by Aaron in the post linked above: “Hopefully I can find some wide range VBR settings that allow me to get maximum quality in complex scenes with a bit smaller file size that a full high bit rate encode.”

quick tip from someone (i.e. me) which does shoot only in 4K, but not with professional gear (i.e. no RED 8K or other stuff in Log or RAW): if you record with Yi 4K, or iPhone (from 6S onwards) or cameras or camcorders, chances are...you aquire at best at 100-120Mbit in h264 CBR. Hence....to be on the safe side, export your final shootage at CBR h264 100Mbit, or in HEVC 50Mbit VBR and you will be OK :)
 
quick tip from someone (i.e. me) which does shoot only in 4K, but not with professional gear (i.e. no RED 8K or other stuff in Log or RAW): if you record with Yi 4K, or iPhone (from 6S onwards) or cameras or camcorders, chances are...you aquire at best at 100-120Mbit in h264 CBR. Hence....to be on the safe side, export your final shootage at CBR h264 100Mbit, or in HEVC 50Mbit VBR and you will be OK :)
Okie Dokie, thanks for the tip! :)
 
irungentoo, your program does not work for me.
 
irungentoo, your program does not work for me.

You need to rename the firmware file to firmware.bin, put it in the same folder and then double click unpacker.bat

A link to the unpacked sections of my program.

It looks fine but your sections still have the headers attached.
 
Back
Top