onviftools

onviftoolsは、ONVIF対応カメラの以下の設定を取得するためのコマンドラインツールです。 ICE-Core、Node-RED実行中でも使用できます。

場所

onviftoolsコマンドは${ICE_HOME}/bin配下にあります。

※${ICE_HOME} はICE Coreのインストールディレクトリを表します。

書式

onviftools discovery [-u <ユーザ名>] [-p <パスワード>]

onviftools get <カメラのIPアドレス>:<カメラのHTTPポート番号> [-u <ユーザ名>] [-p <パスワード>] <プロパティ名>

カメラのIPアドレス、ユーザ名、パスワードは事前の設定が必要です。

サブコマンド

  • discovery
    接続されているカメラを発見し、カメラのIPアドレスを表示します。

  • get
    カメラの各種情報を取得します。

オプション

  • -u--user
    カメラのユーザ名を設定します。

  • -p--password
    カメラのパスワードを設定します。

プロパティ名

サブコマンドgetでは以下のプロパティを指定し、カメラの情報を取得することができます。

  • capabilities
    カメラの対応機能一覧を取得します。

  • profiles
    カメラのプロファイル一覧を取得します。

  • deviceInformation カメラの機器固有情報を取得します。

  • systemDateAndTime カメラの日時設定を取得します。

  • hostname カメラのホスト名を取得します

  • videoSources カメラのビデオソース設定を取得します。

  • presets
    カメラのプリセットポジションを取得します。

  • services カメラのサービスについての情報を取得します。

  • streamUri カメラ映像のストリームを取得するためのURIを取得します。

  • snapshotUri カメラのスナップショットを取得するためのURIを取得します。

  • status  カメラのPTZ statusを取得します。

  • imagingSettings カメラのアクティブなビデオソースに設定されたスナップショット撮影用の設定を取得します。

出力

指定したプロパティの情報やディスカバリーされたカメラの情報がJSON形式で標準出力に表示されます。

戻り値

エラーコード 実行結果
0 正常終了
1 異常終了

使用例

カメラの発見・IPアドレス取得

onviftools discovery

上記コマンドを使用することで、接続しているカメラのIPアドレスを取得できます。

オプション-uおよび-pを使用すると、指定したユーザ名、パスワードで接続できるカメラのハードウェア情報も取得することができます。 (カメラの認証設定によってはオプションを指定しなくてもカメラのハードウェア情報を取得できる場合があります。) カメラのハードウェア情報が得られなかったカメラについてはその原因を出力します。

以下のような出力が標準出力に表示されます。

[
  {
    hostname : "xxx.xxx.xxx.xxx",
    port : 80,
    device_information: {
        manufacturer: 'xxx',
        model: 'xxx',
        firmwareVersion: 'xxx',
        serialNumber: xxx,
        hardwareId: 'xxx'
    }
  },
  {
    hostname : "xxx.xxx.xxx.xxx",
    port : 80,
    get_device_infor_error: ""
  }
]

カメラのCapabilityの取得

  • 全てのCapabilityの取得 onviftools get <IPアドレス> capabilities
    カメラが対応している機能一覧を取得するコマンドです。
    以下のような出力が表示されます。
device{
  XAddr: "",              //deviceサービスのURI
  network:
   { IPFilter: true, 
     zeroConfiguration: true,
     IPVersion6: false,
     dynDNS: false
  },
  system:
   { discoveryResolve: true,
     discoveryBye: true,
     remoteDiscovery: false,
     systemBackup: false,
     systemLogging: false,
     firmwareUpgrade: false
  },
  ...
},
...
  • 部分的なCapabilityの取得
    第3引数にピリオド区切りで項目を指定することで、機能一覧の一部を取得することができます。
    以下はネットワークに関するカメラの対応機能一覧を取得する場合のコマンド使用例です。
$ onviftools get <IPアドレス> capabilities.device.network 
 { IPFilter: true,
   zeroConfiguration: true,
   IPVersion6: false,
   dynDNS: false
}

存在しない項目を指定した場合、「PROPERTY <プロパティ名> is not exist」というメッセージが出力されます。

プロファイルの取得

  • 全てのプロファイルを取得する場合
    onviftools get <IPアドレス> profiles
    上記コマンドを実行することで、カメラのプロファイルが以下のように出力されます。
[
  {
    $: 'mdedia_profile1',
    name: 'media_profile1',
    videoSourceConfiguration: {...},
       ...
  }
]
  • 部分的なプロファイルを取得する場合
    第3引数にピリオド区切りで項目を指定することで、プロファイルの一部を取得することができます。
$ onviftools get <IPアドレス> profiles.1.videoEncoderConfiguration
{
  $:'encoder_config1',
  name: 'encoder_config1',
  encoding: 'H264'
  ...
}