Dropbox

HDZeroゴーグルをアナログVTXで使うべく手持ちのWildfireを付けたものの画像的に今ひとつでした。そこで新しく受信機を入手することにしました。定番はRaidfireですが、もうちょっと安価なSkyzone SteadyView Xにしました。ところが、これが素直にHDZeroゴーグルに搭載することができませんでした。ということで、その顛末を書いておきます。

SteadyView Xは電源を接続してAV端子に映像を出せるグランドステーションとして出荷されてきます。分解して受信機モジュールを取り出してみると違和感。

右側のWildfireと比べるとピンがだいぶ短いです。HDZeroゴーグルのExpansion Moduleに入れてみると、やや斜めに入れれば動かすことは出来るのですが、ちょっと受信機に触ると外れてしまいます。間に何か入れるかピンを立て直すかと思い、手持ちのピンを見たら全く同じ長さのものしかありません。 

ピンの出荷時の長さ配分のまま受信機に付けられているので、基板の上側にピンがだいぶ飛び出しています。これを基板ギリギリまで押し込んで見ることにしました。

修正途中の写真です。ハンダゴテで温めながら押し込んでやると簡単に修正できます。

あと、念の為、下から2本目のピンは抜いておきました。最初のテストでは全ピン挿入して問題はありませんでしたが、過去にHDZeroゴーグル+SteadyView Xでは、このピンを抜かないと不具合があるという情報がありました。もしかすると解決済みなのかもしれません。

SteadyView Xのピンを修正後にExpansio Moduleに入れてみると収まりが良い感じがします。裏からみるとピンが奥まで入っているが確認できました。

問題はもう一つあって、カバーが色々と付属しているのですが全く使えません。こういう用途のためのカバーがあってキッチリとハマるのですが装着するとロータリースイッチが全く効かなくなります。手で回す部分は問題ないのですがスイッチ本体が横に傾いてしまい回転部分から外れてしまいます。何度も試すと壊してしまいそうです。

Pintsbalesに有ったモデルをTPUで出力して被せてみました。カッチリ感はありませんが、実用にはなると思います。

HDZeroのDVRはTSフォーマットが推奨されています。そのあたりの事情は以前書いた記事をご覧ください。

その時に手作業でTSファイルからMP4への変換方法を書きましたが、やはり面倒です。ということで少しでも楽をするためのプログラムを書いてみました。

[ 特徴 ]
– 再エンコードなしで動作が速い
– ワンクリックでSDカードのTSファイルをまとめて変換
– TSファイルのタイムスタンプをMP4にも反映(手作業の時は諦めていた) -> DVRファイルの時刻を何時も正しくするためにはHDZeroゴーグルにバッテリーを取り付けます

https://github.com/nkozawa/ts2mp4

[ 前提 ]
プログラムを書いたと言っても実際に動画を変換するのはffmpegというツールです。もしffmpegが導入されていない場合は、まずこれを導入しコマンド窓でffmpegと打ち込んで動くようにしておく必要があります。Windowsの場合、おそらく自分でPATHを通すという作業を行わないといけません。

[ 実行ファイル ]
Python3の環境がある場合、公開されているts2mp4.pyを実行してください。MacOSとWindows11のPython 3.11でテストしています。試してはいませんがLinuxでも動くと思います。MacOSとWindows用にはPythonの環境がなくても稼働する実行ファイルも用意しています。

[ 使い方 ]

– Input path(TS files)ボタンを押してTSファイルのある場所を指定します。HDZeroゴーグルのSDカードを指定する事が多いと思います。その場合、SDカード下のmoviesフォルダーを指定します。
– Output path(MP4 files)ボタンを押してMP4ファイルを格納する場所を指定します。
– TSファイルのタイムスタンプをMP4ファイルに反映させる場合はUse Original File Timestampにチェックを入れます。チェックを入れない場合はMP4ファイルのタイムスタンプは現在の時刻になります。
– Start, no overwriteもしくはStart, overwrite allを押して変換を開始します。
“Start, no overwite”は出力先にすでに該当のMP4ファイルがあれば何もしません。新しく録画したものだけを変換するので普通はこのボタンが便利です。ただし判定はファイル名のみで行っています。SDカードを初期化した場合などは考慮が必要です。”Start, overwrite all”は出力先の状態に関係なく全てのTSファイルを変換します。

[ INIファイル ]
Input path(TS files)、Output path(MP4 files)、Use Original File Timestampの設定値はINIファイルに記録されます。次にプログラムを起動するとINIファイルを自動的に読み込みます。

INIファイルはユーザーのホームディレクトリーにts2mp4.iniという名前で書き込みます。

INIファイルの書き込みは、今のところStart, no overwriteもしくはStart, overwrite allを押した時に行なっています。

HDZeroゴーグルにはHDMI出力があり常にゴーグル内で見ている画像を外部のディスプレイに映し出すことが出来るようになっています。MacBookの外付けディスプレイを時々切り替えてゴーグルの画像を見ていましたが、その時にはMacBookで使用できる無くなるわけで色々と不自由をしていました。そこで入手したのがHDMIからUVCに変換してくれるデバイスです。そういうわけで、これはHDZeroゴーグルに限らずHDMI出力をPCや端末で表示させるための方法です。出張先でFire TV Stickを見るなんてことも出来そうです。

GUERMOK USB 3.0 HDMI to USB C オーディオ キャプチャ カード、4K 1080P60 キャプチャ デバイスというものです。

試したのは小米MiPad5というアンドロイドタブレットです。USB Cameraというアプリを導入したところ何も悩むことなく画面が表示できました。

ただしHDZeroゴーグル側はHDMIコネクターちょっと小さいやつです。それとキャプチャーデバイスを単純な接続すれば大丈夫です。

MacBookでもQuickTome Playerで入力デバイスをUSB3 Videoを選択したら表示できました。

HDZero関連記事を連投したので、ここで目次を書いておきます。

HDZeroゴーグルのRecord Option/Audio SourceにはMic, Line in, A/V inの選択肢があります。規定値はMicになっています。どうもゴーグルには内蔵マイクロフォンがあるようでDVRには何かしら録音されていますが、ほとんどファンノイズらしきものに埋もれてしまった役に立ちません。そこで外部マイクを取り付けることにしました。

必要なのはTRRSコネクター(4極)で接続されるマイクロフォンです。世の中にはTRSコネクター(3極)のマイクロフォンも沢山ありますので間違えないようにします。

私が用意したのはこのマイクロフォンです。

このマイクを写真のようにヘッドセットマークのあるジャックに接続しました。Audio SourceをLine Inに設定すれば準備完了です。A/V inはアナログモジュールとAV IN 3.5mmコネクターに接続されるようですがコネクターの仕様が違うのでTRRSマイクロフォンは使用できません。3.5mmコネクターのピンアサインはゴーグルのマニュアルに図解されています。

ゴーグルのファンがうるさいですが、十分にモーター音を捉えられるようになりました。

HDZero推奨のTS形式によるDVR録画は試した限りより確実に録画ファイルを残すことが出来るようです。当然、ゴーグルでのPlaybackは問題ありません。ただしPCに取り出した時には使い勝手が悪くなります。その辺りを検証していきます。macOSでの検証ですが、Windowsでもほぼ同じと思います。

今回の事例はHDZeroの60FPSモードのみで有効です。

macOSでのプレビューはできないですし、一般的な動画編集アプリケーションでは動画ファイルとして認識してくれません。そこで何かしらツールを使う必要があります。私が試したのはお馴染みのVLCメディアプレイヤーとコマンドラインツールのffmpegです。

[ VLCメディアプレイヤー ]
動画ならなんでも扱えるVLCはPCに最初に導入すべきアプリケーションと言って良いと思います。もちろん、TSファイルの再生もそのまま普通に行うことが出来ます。
MP4に変換するのも簡単です。ネット上にもVLC以外の変換方法、あるいはVLCでの手順も紹介されていますが、注意すべき点は再エンコードさせないということです。再エンコードは時間がかかりますし、何より画質が劣化する可能性があります。このTSファイルは中身はそのままで器を変えることによりMP4に変換出来ます。以下、その手順です。VLCのバージョンによって画面は異なるかもしれません。

変換のためのメニューを開きます。


カプセルとしてMP4を選択。


再エンコードしないので「オリジナルのビデオトラックを保持」を選択。


「オリジナルのオーディオトラックを保持」を選択。


適当な名前で新しいプロファイルとして保管します。


変換したいファイルを選び、作成したプロファイルを選択、「名前を付けて保存」を押す。


変換後のパス名を指定して保存。

私のVLCでは複数ファイルの一括変換が出来ませんでしたが、もしかするとWindowsなどでは一括処理が可能かもしれません。

出来上がったファイルは相変わらずmacOSではプレビュー出来ませんが、DaVinci Resolveでは正しく映像ファイルとして認識されます。

[ ffmpeg ]
コマンドラインツールのffmpegは最強の動画関連ツールです。導入の仕方は、ここでは説明しません(macOS向けの手順は複数あって、どの方法で導入したか忘れました)。

出来ることがあまりに多いし、もとより動画ファイルのフォーマットに関する専門的な知識が足りないのでコマンドの前葉を理解することは出来ません。そこで私はもっばら使用事例を探しては自分の用途に適用することに徹しています。今回も複数の事例の組み合わせです。

TSファイルの再生はffplayというコマンドで行います。単純にファイル名をパラメーターとして渡せば再生されます。再生中にはショートカットキーで操作できます。

変換にはffmpegコマンドを使用します。
ffmpeg -i hdz_146.ts -vcodec copy -tag:v hvc1 -acodec copy hdz_146.mp4
見ての通りでhdz_146.tsというファイルをmp4に変換する例です。’-tag:v hvc1’を指定するとVLCの時とは違いmacOSでmacOSでプレビュー出来るmp4ファイルにすることが出来ます。またこのオプションはHEVC(H.265)だけに有効です。

その他にffprobeというコマンドが動画ファイルの属性を見ることが出来るので解析するのに便利です。

まだ作ってはいませんがファイル名の入力を楽にしたり一括変換するスクリプトも簡単に出来そうです。
-> 作りました。https://www.nkozawa.com/blog/archives/7677

[ 結論 ]
DVRファイルを利用する際にはマイクロSDからPCにコピーすることが多いわけですし、そのコピーの代わりにマイクロSD上のTSファイルを変換しつつPCのSSD/HDD上に保管する手順を確立すれば、まあまあ良い使い勝手になると思います。ということで私はHDZeroが推奨するままにTSフォーマットを使用することにします。

HDZeroゴーグルのDVRには録画形式としてMP4とTSフォーマットの二つの選択肢があります。

ゴーグルのマニュアルにはMP4は壊れるからTS推奨とあります。そうは言ってもTSファイルはDaVinci Resolveで認識されないし、なんとかMP4形式を使ってみたいと思うので色々と試してみました。

MP4ファイルが壊れるのはGoProなどでもお馴染みの現象で、主に映像ファイルとして正しく閉じる前に電源を落としてしまった時に発生します。ゴーグルのマニュアルにも同様の記述があり、MP4ファイルを壊さないための手順も書かれています。
– Auto record mode(自動録画モード、VTXの電波を受信すると録画を開始し電波がなくなると停止するモード):
> ゴーグル左のボタンを長押ししてメニューを表示してからゴーグルの電源を落とす。もしくは、
> ドローンの電源を切り、10秒待ってからゴーグルの電源を落とす。
– Manual record mode(ゴーグルの右ボタンで録画の開始、停止を行うモード): 録画を停止してからゴーグルの電源を落とす。

常識的な対策ですし難しくはなさそうです。わざとルール無視することも含め何度か録画をしてみました。一連のテストでは、思い通りの結果が得られました。わざと壊れるような操作をしたMP4ファイルもVLCでは再生可能だったので修復して使用することは出来そうでしたしゴーグルでのPlayBackも可能でした。不可解なことにひとつだけTSファイルも出来あがっていました(githubにバグレポートあり)。

まあ、なんとか使えそうな気もします。ただ、油断してなんかの拍子に使えないMP4ファイルを量産してしまいそうでもあります。

日本では使用しないので問題はありませんがカメラを90FPSモードにすると、そのままでは使用出来ないMP4ファイルが出来上がってしまいました。PlaybackやVLCでは再生できますがDaVinci Resolveは動画として認識してくれませんでした。色々と弄ってみましたが、調べた限りでは時間をかけて再エンコードしないとDaVinci Resolveには読み込めませんでした。

YouTubeに90FPSモードのレビューがあり、そこの概要欄にDVRファイルがあります。そのファイルは問題がないのでどこかのファームウェアレベルでおかしくなった可能性があります。

おそらく突然電源オフにした時だと思いますが全く使えないMP4ファイルになったケースもありました。

HDZeroの推奨ですし、次回はTSファイルの検証を行います。

HDZeroをアマチュア無線として開局するためには帯域幅を17MHzにする必要があります。その設定手順の覚え書きです。

まずはカメラの解像度を540P@60に変更しSAVE&EXITを実行します。現在のところ、この設定が使用できるカメラはRunCam Nano 90だけです。カメラメニューの出し方は前記事を参照ください。

ゴーグルをNarrow BWに変更するようメッセージが表示されます。OKを実行すると実際にモードが変わり、VTXとゴーグルの帯域幅が合わなくなり画面が乱れます。

ゴーグルのメニューを開きSourceの中でHDZero BWをWideからNarrowに変更します。

気になる画質ですが一般的なアナログVTXよりは良いと思います。以前、飛ばしていた初代DJI Digital FPV Systemを初めて飛ばした時のような感動は得られませんでしたが、致し方なし。

HDZeroのハードウェア設定が完了すれば、なんとか飛ばせます。OSDの設定はフォントの設定を除けばアナログと変わりませんしVTXのチャネル変更も従来の知識でなんとかなります。HDZeroゴーグルのメニュー体系も操作もわかりやすく出来ています。ということでマニュアルを読まなくともなんとか飛べるようにはなります。しかしながらVTX側の操作は完全には出来ていません。

このVTX側の設定変更はDJIなどのデジタルFPVシステムとは違いゴーグルのメニューからは出来ません(DJIはゴーグルとVTXで双方向通信を行なっているがHDZeroはアナログVTXと同様にVTXからしか電波を発信していない)。そのための操作はスティックコマンドでFCを経由して行います。HDZero VTXマニュアルに詳細が記述されています。

HDZero VTXマニュアルからの抜粋

二番目はお馴染みのBetaflight Menuです。一番上のVTX Menuと三番目のFor HDZero Cameras(Camera Menu)を覚えておく必要があります。
一番下の出力を0mWにする操作も何かの時には役に立つかもしれないので練習しておくと良いです。

VTX Menuでは周波数や出力の変更が行えます。またVTXファームウェアレベルもここで確認できます。

Camera Menuはカメラの明るさ、色合いなどカメラ固有の設定を行えます。カメラ解像度の設定もここで行います。

Betaflight 4.4を前提に簡単にHDZERO VTXの結線と最低限必要なBetaflightの構成を書いておきます。

[ 結線 ]

写真はケースを外したHDZero Whoop Liteです。FCに接続するためのパッドが5つあります。G (GND), V (Voltage), R (RX), T(TX), SA (SamrtAudio)です。隣のコネクターはファームウェア更新のための物です。Freestyle VTXなどでは半田付パッドではなくコネクターになっていますが、内容的には同じです。

現在、SAは使用せず電源とRX,TXを接続します。電源は一般的にはVBATを使用します。RX,TXはELRS受信機と同じくVTXのRXをFCの任意のTXへ、VTXのTXはFCのRXに接続します。

[ ポート構成 ]

該当のUARTポートにMSP, VTX(MSP+ディスプレイポート)を設定します。 この構成でOSD(HD)とFCからのVTX操作が使用出来るようになります。

[ VTXテーブル ]
HDZEROのダウンロードページにVTX Tableがあります。中身はjsonファイルです、該当のものをBetaflight ConfiguratorのVTXページで読み込みます。E1(5705MHz)とF1(5740MHz)は自分で追加する必要があります。

と、書きましたが、VTXのSAを使用する構成でない限り手動でのVTX table入力は必要がない気がします。もしこれから設定される場合は上のポート設定だけで進めてみてください。おそらく問題ないと思います。

[ プリセットの使用 ]
Xでご指摘をいただきBetaflight 4.4のプリセットを調べてみるとHDZero VTXのプリセットがありました。Betaflight公式ではありませんがよく出来ているようです。私自身はまだ実際に試してはいませんが、CLIを表示してみる限り問題ないと思います(E1,F1は含まれていません)。カテゴリーVTXかキーワード’HDZERO’で見つかります。