Xiaomi Yi のカスタムファームを試してみよう!
ってことで調べてみた。
Xiaomi Yi には現在2種類のカスタムファームが出回っている。
①標準で低いビットレートを高ビットレートに変更する
②2Kや720p 240fpsを可能にする
この記事では①のビットレート変更を紹介する。
②については調べているがまだはっきりとしたことがわかっていない。
■お約束
動かなくなっても泣かないこと。
この記事の通りやって動かなくなっても僕は責任を一切おいません!
■カスタムファームの入手方法
ネットで公開している人もいるが、ハードウェアのリビジョンによってファームが2種類あるが、カスタムファームにリビジョンが記載されてないものがあり、適当に入れると動作しなくなる可能性もある。
うーん、ネット上にアップされているビットレート変更カスタムファームは危険な香りがするなぁ。
どうしよう。って思て調べてみるとどうやら簡単に作れるらしい。
■カスタムファームの作り方
なんで簡単に作れるかというと、ビットレートを調整しているチップはAmbarellaというこの分野では非常に力のあるアメリカのベンチャー企業なのだが、ここのチップのファームを簡単に書き換えるツール(無料)があるためだ。
ツールではA2、A5、A7のチップのファームに対応しており、早い話しがXiaomiに限らずAmbarellaのチップを搭載しているメーカーなら書き換えることができる。
では早速手順を紹介する。
①Xioami公式サイトから、リビジョンに適合した最新ファームを入手する。
リビジョンの確認方法は、バッテリーを外してシリアルナンバーを確認すれば良い。
僕のは最初期のrev22。
ファームは二種類あるが、バージョン/機能は基本的に同じっぽい。
2015年7月現在の最新は1.2.0 44MBくらいだった。
ファイル名:1434715807596_fw.bin
ダウンロードしたらCドライブ直下等にフォルダーを作成し保存しよう。
原因はわからないが、カスタムファームを作成する時にエラーが出たのでドライブ直下にフォルダーを移動させると成功した。
フォルダー構成に2バイト文字が入っているとだめなのかな?
例えば、c:\ユーザー\まさきち\デスクトップ\Xiaomi ってフォルダーだと、「まさきち」の部分で引っかかるのではないかと思う。
根拠は無いけどね。
②Ambarella Firemware Toolboxをダウンロードする。
Ambarella Firemware Toolboxダウンロードサイト
少し下のほうに「AFT 1.3.2 – Ambarella firmware editor」というのがあるので、ダウンロードする。
ファイル名:AFT132.jar
わかりにくくならないよう、ファームと同じフォルダーに保存しておく。
Javaアプリなので動かなければJavaをインストール、アップデートしよう。
③Ambarella Firemware Toolboxでファームを取り込む
Ambarella Firemware Toolboxを起動して、左上のOpen→【A7 binary】をクリックする。
※A7とはチップの名称。Xiaomi Yi やSJ5000+はA7シリーズ。
さっきダウンロードしたXiaomi Yi のファーム(*********_fw.bin)を指定し、【Load A7 firmware】をクリックする。
するとツールで以下のように読み込みが数秒で完了する。
④ビットレート情報等を抽出する。
上部メニュー Partitions→【Extract All】をクリックすると数秒で同じフォルダーに【partitions】というフォルダーと中にファイルが作られる。
次に上部メニュー ROM/RFS→【Extract Rom to Disk】をクリックすると同じく数秒で【rtosfs】というフォルダーと中にファイルが作られる。
⑤ビットレートを任意に変更し保存する
上部メニューのEditors→【A5/A7 Bitrate Editor】をクリックする。
【Load from PRI】をクリックし、先ほど作成されたPartitionsフォルダー内の【PRL.a7s】を指定する。
開いたリストの【Bitrate】列がビットレートの値で、縦のNo0~160までが、何の設定かを示している。
何番が何かはわからないので、先のサイトのエクセルのリストを参考にする。
おそらく、解像度設定が追加されると行が増えると思われるので、今後は変わってくるかもしれない。
とりあえず、よく使うものであろうNoと、デフォルトのビットレートと今回変更したビットレートを記載しておく。
FullHD 60fps Hight = No9 →25を35へ
FullHD 60fps Middle = No10 →15を30へ
FullHD 60fps Low = No11 →12を25へ
FullHD 30fps Hight = No18 →12を30へ
FullHD 30fps Middle = No19 →10を25へ
FullHD 30fps Low = No20 →8を12へ
HD 60fps Hight = No45 →12を25へ
HD 60fps Middle = No46 →9を20へ
HD 60fps Low = No47 →6を12へ
HD 120fps Hight = No156 →18を35へ
HD 120fps Middle = No157 →15を30へ
HD 120fps Low = No158 →12を18へ
ビットレートは高くしすぎると熱暴走する可能性があるのと、処理しきれない可能性もある。
海外のフォーラムを見ると概ね35Mbpsまでに収めるのが一般的なようだ。
今回はもともとのHight設定と比較するため、LowをデフォルトのHightにしてみた。
他はおおむね30前後にしている。
当然だけど、ビットレートを高くする分、時間あたりの容量が大きくなる。
12Mbpsを24Mbpsにすれば容量は概ね二倍になって、撮影可能時間もその分減る。
あとはどれくらい画質が向上するか、満足できるか、何時間撮影したいかによって決めればいい。
ちょっと今回は高くしすぎたような気がするので、後で5Mbpsくらい下げようかと思っている。
決まったら右下の【Apply changes】をクリックして、画面を閉じる。
一瞬で保存されるので保存されたかわかりづらいが大丈夫だ。
⑥保存した設定でファームを作成する
上部メニューのROM/RFS→【Build Rom From Disk】をクリックする。
Build→【Firmware update】をクリックする。
同じフォルダーに【a7firmware.bin】ができるので、【firmware.bin】にリネームする。
⑦ファームウェアのアップデートをする。
【firmware.bin】をMicroSDの直下に保存し、Xiaomi Yi に入れて起動する。
この時、バッテリーが十分にないとファームアップができないので充電しておこう。
また、給電もしておかないといけないかもしれない。
起動するとピ!とアラームが1分くらい?鳴り続けるので、しばらく待つと電源が落ちて完了だ。
■撮影確認
せっかくなので雨だけど撮影してきた。
が、VBR(可変ビットレート)なので、止まった状態では差がないw
うーん、走行中に撮影しないと違いがわからないね。
本当にビットレートがかわったのかは動画容量を見れば一目瞭然。
念のためMediaInfoでも確認したが、間違いなくビットレートは上がっている。
というわけで、カスタムファームの作成方法は以上。
動かなくなっても泣かないことを約束してくれる良い子のみんなだけマネしてね!
コメント
うーん、すみませんが単純にアクセスができてないだけのようで、原因はわかりませんね。
管理者権限で実行してみるとか、別のフォルダーで実行するくらいでしょうか。
そうですね(^_^;)すみませんありがとうございます!
それができたらGoProを完全に凌駕してしまうでしょうね。
そもそもセンサーがFullHD 120fpsをサポートしてないので、無理だと思います。
調べてみましたが、解像度とfpsは固定されてファームに組み込まれているので無理だと思います。
編集時にfpsを落とすのが手っ取り早いとおもいます。
>まさきちさん
その通りです。fullHDでの120fpsやHDでの240fpsなどが撮影したいです!
もしよろしければ教えて下さい。私はフレームレートを逆に落としたいです。例えばHDで 5fps撮影するにはどのようにすればよいでしょうか?
すみません、フレームレートを追加するってどういう事をさしていますか?
FullHDで120fps撮影をしたいとかそういうことですか?
具体的に教えてください。
フレームレートを追加する方法がありましたら教えて下さい!
やぎーさん
貴重な情報ありがとうございます。
0wataさんからもいただいた情報をかんがみるに、PCとのUSB接続に難有りなのは個体差ではなく機種の問題のようですね
画質についても同意見のようですので、ハイスペックだけど期待通りではないことがわかりました。
SJCAMも安定しない事がありますが、最低限の安定性は備えていて製品として成立しているから売れる、ということですね。
せっかく詳しい情報をいただいたので、記事に書き起こさせていただきました。
https://bikede-go.com/blog-entry-115.html
Hero1届きました!
が、かなりがっかりしました。購入は本当控えたほうが良いですこれ・・・
・ビットレートが13Mから最高で15Mと非常に画質が悪いこと。
Yiよりも酷くて正直物凄くがっかりしました。CFW入れたYiより酷いです。
・操作が非常に分かり難い
Yiは体感的に分かりやすいですがHero1は画面があるのに駄目です。
バックモニター右側の上下のボタン2つで操作しますが上を押すとメニューを戻っていく、下を押すと進むという仕様で慣れるまで少し掛かりました。
あとUSBが付属のものでないとPCに認識しません。Yiについてきたケーブルだと全く認識しませんでした。配線がちょっと違うのか・・・不思議な端末です。
とりあえずShenzhenのHPを見つけたのでそこに色々と問い合わせしてきます。
BlackView HERO1は残念な感じですね。
海外サイトみてまわっても、ハイスペックなわりにあまりその点を評価した記事が見当たりませんでした。
僕も購入しようか迷ったのですが、Xiaomiが面白くてしばらく遊べそうなので様子見していたところです。
HERO2も最初に目に付いた動画が電源が落ちるというものだったので、難有りのようですね。
貴重な情報ありがとうございます。
Bitrate Editorで固定か可変かも変更できるんですね。
2k解像度はスクリプトからしかやり方がわかりませんが、Bitrate Editorで何かしらできそうな感じがします。
ファームで追加できればwifiアプリから設定できていいのですが、今のところそんな記述は見当たらないので無理かなぁという感じです。
60Mbps狙いですか?
なかなか厳しいところいきますね。
海外のフォーラムにも50Mbpsで設定している人に対して、ムリがあるよ。って書き込みがちらほらありました。
理由はわかりませんが、チップの性能的にコマ落ちするか、発熱の問題と思います。
Goproも放熱が間に合わず、夏場はよく落ちるそうです。
僕は30Mbpsにしていますが、これならまぁ大丈夫かな?という気はします。
長時間の撮影時は放熱に気をつけてみてください。
いつも楽しく拝見させていただいています。
Blackview Hero1のバルク版を入手し、FWのカスタマイズに試行錯誤してるときに記事を見つけて参考にさせて頂きました。
海外のフォーラムで拾ってきた情報ですが
Bitrate Editorでビットレート値を書き替える際、右端のType値を替えることでエンコードの設定を変更することが出来るみたいです。
1がCBR(固定)、2がABR(平均)、デフォルトの3がVBR(可変)となっているようです。
あれこれと試行錯誤しているHero1ですが、これが想像以上にとんでもない曲者でして・・・
安価な中華ドラレコで定番メーカーなのにどうしてこうなったってくらい出来が酷いです。
手持ちものは、まずUSB接続してもデバイスIDの記述子に問題が有り認識すらしません。
FW書き替えに失敗して文鎮化すると修復する手立がまったくない状態です。
そもそもFWが公開されていませんですし・・・
画質は、ノイズリダクションがきつ過ぎるため夜間でもノイズが非常に少ないのは良いのですが、副作用でボケがかなり酷いと言うか油絵みたいな写りです。
とりあえず自力でFWを吸出し、FW書き替えでのCBR30Mbps化とスクリプトで強制的にノイズリダクション減らしをやって、やっとまあボチボチ使えるようになったかなと言う感じです。
少なくとも現状では、とても140ドル近く出して買うような代物ではないことは確かです。
いつも楽しくみさせていただいてます。
自分も1ヶ月弱前にYi買って弄っていましたが、海外フォーラムの情報がいまいち分からなかったため
自作FWについては全然手を出していませんでしたが今回のまさきちさんのブログでYiを文鎮覚悟で弄ってみました。
自分の固体はZ23Aですが、ベースはLなんですかね?23Lの名前が出てきました。
その後1920*1080のFPSを50にして44Mfps平均値と出てガッカリ。50届いてないじゃん!ということで目指せ平均値60を実行。
残念ながら設定60でも平均値は54、ピークが58となりました。
まあそれでも相当画質は上がりましたがこれなら2K録画の30fpsでも十分なのかなと思ったり。
近々BlackviewのHero1が届くので2.7K録画が出来る端末に出来るかどうか試してみたいと思っています。
今後も楽しみにしております、情報ありがとうございました。