導入
NVIDIA Jetson上でZao-Xの機能を実現するためのソフトウェアモジュールです。 Zao Cloudと連携し、映像・音声・制御信号の低遅延伝送を実現します。 モバイル回線に最適化されたRASCOW2プロトコルを採用することにより回線状態の監視や冗長化も行います。
必要事項を記入の上、ここからお申し込みください。
申込受付後、記入されたメールアドレスに受付完了メールが届き、5営業日以内に利用開始の案内メールが届きます。
Zao Cloudの利用料金が必要になります。Zao SDK スターターキットを購入して始める方法とZao SDKトライアルに申し込みをして始める方法があります。詳しくは、利用開始のページをご覧ください。
最低限1GByte以上を確保してください。ログファイルの増分を考慮して追加で数百Mbye程度の余裕を推奨します。
32GB以上のmicroSDカードをお使いください。
Zao SDK for JetsonではJetson Nano Developer KitでのROM化を提供しています。
ROM化するとログファイル等はシャットダウンで揮発しますが、シャットダウン処理を経ず電源断することが可能となります (ROM化していない状態で突然電源断するとファイルシステムが破損する可能性があります)。
対応プラットフォーム・周辺機器
ハードウエアは Jetson Nano / Jetson Xavier NX / Jetson AGX Xavier に標準で対応しています。
JetPack は 4.6.1 ~ 4.6.5 に対応しています (4.6.5推奨)。
特定のキャリアボードや JetPack 4.6 (無印) 以前への対応については営業にお問い合わせください。
現段階では対応していませんが、順次対応いたします。
対応の予定はありません。
Jetson Nano Developer Kitの拡張コネクタ(40-Pin Expansion Header)のGPIO (Digital I/O、PWM、I2C、I2S、SPI) がユーザーアプリケーションにて利用可能です。設定・利用方法についてはそれぞれの開発ボードのドキュメントを参照してください。
Zao SDK for Jetson 1.5.0.0 での IP カメラ対応は以下の 2 通りとなります。
- ZaoVideoSourceIpcam アプリで 1 カメラを 1 画面で送信
- ZaoVideoSource4cam アプリで最大 4 カメラを田の字の面付けした 1 画面で送信
共に Jetson から RTSP (H.264 or HEVC) で IP カメラにアクセスして映像を取得します。
以下機種において動作が確認されています。
- AXIS P1455LE
- TP-Link VIGI C300HP
- i-PRO WV-S4556LUX
Jetson Nano Developer Kit で以下のMIPIカメラの動作が確認できています。
- Raspberry Pi Camera Module v2.1
- Leopard LI-IMX219-MIPI-FF-NANO
1カメラの送信ではZaoVideoSourceプロセスにZaoVideoSourceArgusを選択し、2カメラを合成する場合にはZaoVideoSourceNvCompositeを選択してください。
- Creative SoundBlaster X G1
- YAMAHA YVC-330
- YAMAHA YVC-200
- behringer UCA202 U-CONTROL
基本的にはUVC対応のカメラ (V4L2でMJPG, YUYV, YVYU, UYVY, VYUYに認識されるもの) が扱えます。
Jetson Nano Developer Kitとの組み合わせで以下のカメラで動作が確認できています。
- Logicool C980
- EMEET C970 ※1
- Elecom UCAM-CW50ABWH
- Anker PowerConf C200
※1 EMEECT C970はJetson Xavier NXでは正常に映像がキャプチャできません。
1カメラを伝送する場合にはZaoVideoSourceプロセスとしてZaoVideoSourceWebcamを選択し、4カメラを田の字合成する場合にはZaoVideoSource4camを選択してください。ただし、ハードウェア性能上、USB2.0では4カメラを同時に動かすことはできません。複数カメラを柔軟に合成できるZaoVideoSourceNvCompositeにWebカメラ収容する機能は今後実装予定です。
LTE通信モジュールが4個内蔵されているソリトン製のハードウエアです。JetsonにUSBで接続することにより、最大4回線のマルチリンク・システムを実現することができます。
なお、Zao-X用のMLUとJetson用のMLUは内蔵ソフトウエアが異なるため、Zao-X用のMLUはJetsonでは正しく使用できません。
JetPackで対応可能なモデムであれば利用可能です(一部のPPPタイプのモデムはご利用いただけません)。
以下の USB モデム・LTE ルータ (USB テザリング) での動作を確認しています。
- 富士ソフト FS040U
- Anker A7611011
- BUFFALO LUA4-U3-AGTE
- BUFFALO LUA3-U2-ATX
- FTDI CHIPI-X10
- FTDI US232R-10
- FTDI UC232R-10
- BUFFALO BCUSRC06
※ Zao SDK for JetsonをJetson Nanoに接続して確認しました。
GMSLカメラの互換性に関してはキャリアボードとカメラの組み合わせに強い依存関係があるため、営業にご相談ください。
参考まで、以下のGMSL2カメラでの開発事例があります (最新版Zao SDK for Jetsonでの動作を保証するものではありません)。
- Leopard Imaging LI-IMX490-GMSL2
- Leopard Imaging LI-IMX412-GMSL2
- e-con Systems STURDeCAM21
- GlobalSat BU-353N5
現時点では未対応ですが、対応予定です。時期は未定です。
映像伝送
Zao Cloudのご契約と受信アプリケーションのダウンロードが必要です。
UVC対応 (V4L2でYUYV, YVYU, UYVY, VYUYと認識されるもの) のHDMIキャプチャアダプタを用いることで、PC画面を伝送可能です。ZaoVideoSourceプロセスにはZaoVideoSourceWebcamを選択し、解像度・フレームレート・ピクセルフォーマットの設定を行ってください。
Magewell USB Capture HDMI Gen2の動作が確認できています。
Zao SDK for Jetson 1.4.1.0 から追加された ZaoVideoSourceNvComposite は ZaoVideoSource プロセスの一種で複数の GMSL2 カメラからの映像を合成して伝送できます。
デフォルトの設定では、4 個のカメラを田の字に縮小・面付けするレイアウトになっていますが、設定ファイルを編集することで「カメラから任意の矩形領域を切り出し、反転・回転を施し、合成結果フレームの任意矩形領域にはめ込む」ことを各カメラについて設定可能です
(反転・回転は Zao SDK for Jetson 1.5.0.0 で追加対応)。
設定ファイルは /etc/zao/VideoSourceNvComposite.toml
で、設定ファイルの書式については、libzao-endpoint API リファレンスの「ZaoVideoSourceNvComposite の設定ファイルの書式」を参照ください。
IP カメラからの映像等を合成する ZaoVideoSource4cam は田の字のレイアウト固定となっており、設定ファイルによるレイアウト変更には対応していません。
ZaoVideoSourceNvComposite、ZaoVideoSource4cam 共にソースコードが同梱されています。SDK ユーザによるソースコード変更・セルフビルドによりより複雑なカスタマイズが可能です。
その他のデータの伝送
Zao SDKでは現状Audioの双方向伝送はサポートされていませんが、今後サポートを追加する予定です。
利用できます。Jetson側はTTYデバイスを認識させて、シリアル通信を外部に貫通させられる他、ユーザープロセス内でメッセージを入出力させることもできます。
※シリアルトンネル機能は受信PCとJetson間でUSBシリアルポートなどのシリアルデータを双方向に疎通させる機能です。詳しくはクイックスタートガイド、ユーザーズガイドを参照してください。
現時点では非対応です。
トラブルシューティング
ネットワークが存在するか確認してください。
Jetson 上で以下のコマンドを実行し、アドレスが正しいか確認してください。お客様毎のアドレスは契約情報に記載されています。ZAO_CLOUD_URL="https://〇〇/api/v1/transmitters/"
- Zao SDK for Jetson 1.1.0.0以降の場合
-
sudo gedit /etc/zao/Control.conf
- Zao SDK for Jetson 1.0.0.0の場合
-
sudo gedit /usr/local/etc/zao/Control.conf
- 指定されたポートにデバイスが接続され、認識されているか確認してください。PuTTY などのシリアル通信ソフトウェアを使用して、指定したポートに他のソフトウェアからアクセスできることを確認してください。
- 指定したポートが他のアプリケーションで使用中でないことを確認してください
- 指定したボーレートがデバイスでサポートされていることを確認してください(初期値は115200bpsです。ボーレート変更についてはユーザーズガイドを参照してください)
- 正しいCOMポートを選択してください。すでに選択されている場合は、ログアウトした後に、「ファイル」->「キャッシュクリア」でキャッシュクリアし、Zao Cloud Viewを再起動してください。再度シリアルデバイス選択画面が表示されるため、正しいデバイスを選択してください。
- 複数のGPU(例えば、CPU内蔵GPUとNVIDIA/AMDなどのディスクリートGPU)を持つPCの場合、下記の手順でZao Cloud View 1.5が使用するGPUをディスクリートに設定してください(設定例 Window 10の場合)
- Windowsアイコン→歯車アイコン→「ディスプレイ」→「グラフィックス設定」で「グラフィックスのパフォーマンスの基本設定」を開きます
- 「基本設定を指定するアプリを選択します」の「デスクトップアプリ」を選択
- 参照ボタンをクリックし、Zao Cloud View 1.5のインストールパス※を選択
- 「Zao Cloud View 1.5」をクリックすると出現する「オプション」を選択
- 「高パフォーマンス」を選択して「保存」をクリックします
- コントロールパネル->電源オプション→「電源プランの選択またはカスタマイズ」で「高パフォーマンス」または「究極のパフォーマンス」を選択します
※ インストールパスはデスクトップにあるZao Cloud VIew 1.5のショートカットを選択して右クリックで「プロパティ」を表示し、「リンク先」をご確認ください
ZaoVideoSourceIpcam アプリ, ZaoVideoSource4cam アプリでは映像源として IP カメラから RTSP 受信した映像を使用可能ですが、一部の IP カメラからの映像受信がうまく動作しない場合があります。
Jetson にログインして以下コマンド実行し、gstreamer1.0-plugins-ugly パッケージをアンインストールすると動作する場合があります。
$ sudo apt remove gstreamer1.0-plugins-ugly
その他
可能です。
- Zao SDK for Jetson 1.1.0.0以降の場合
-
/etc/zao/RemoteEndpint.conf
- Zao SDK for Jetson 1.0.0.0の場合
-
/usr/local/etc/zao/RemoteEndpint.conf
上記ファイルの記述を “default” から “line5” に変更してください。
RE_LINES=’–rascow-netns=line1,line2,line3,line4,default,line6,line7,line8′
↓
RE_LINES=’–rascow-netns=line1,line2,line3,line4,line5,line6,line7,line8′