TENVIS JPT3815Wで利用できるAPI

TENVIS JPT3815W(2013版)で利用できるAPIを、判ってる範囲で記録しておく。

例えば、以下の様にコマンドラインからカメラを操作できる。

curl "http://[ipcamera]/media/?action=cmd&code=2&value=1"

なおアクセスの際にはBASIC認証が必要なので、ドメイン部分で[id]:[password]@[host]:[port]とするか、リクエストパラメータとして&user=[id]&pwd=[password]を付加する。

使用したカメラ

JPT3815W(2013版) バージョン
ハードウェア Ver 1.7
ファームウェア Ver 1.7.25

GET /set_misc.cgi

カメラの向きが変わる速度を設定するAPI。

追加のパラメータとしてptz_patrol_rateが必要で、例えば以下の様に指定する。

curl "http://[ipcamera]/set_misc.cgi?ptz_patrol_rate=5"

指定できる値は以下の通り。

Command 'ptz_patrol_rate' Description
PTZ speed [0-10] 0: fastest ... 10: slowest

GET /media/?action=cmd

カメラのPTZ(pan/tilt/zoom)操作行うAPI。なおこの機種にはZoom機能は無い。

追加のパラメータが必要で、codeで操作の種類を指定してvalueで具体的な指示を行う。

curl "http://[ipcamera]/media/?action=cmd&code=2&value=1"

指定できる値は以下の通り。

Command 'code' 'value' Description
start Pan/Tilt 2 1 UP
2 DOWN
3 LEFT
4 RIGHT
5 UP-LEFT
6 UP-RIGHT
7 DOWN-LEFT
8 DOWN-RIGHT
9 LOOP:LEFT<->RIGHT
10 LOOP:UP<->DOWN
11 LOOP:BOTH
stop Pan/Tilt 3 [1-11] the same as 'start Pan/Tilt'.
contrast 5 [0-10] 0: softest ... 10: hardest
brightness 6 [0-10] 0: darkest ... 10: brightest
resolution 7 41943520 width:640 x height:480
20971760 width:320 x height:240
10485880 width:160 x height:120
frame rate 8 [30,20,15,10,5,4,3,2,1,-2,-3,-4,-5] 30fps, 20fps, 15fps, 10fps, 5fps, 4fps, 3fps, 2fps, 1fps, 1fp/2s, 1fp/3s, 1fp/4s, 1fp/5s
flip horizon 9 13
flip vertical 9 23
set preset 11 [1-6]
go preset 13 [1-6]

GET /media/?action=snapshot、またはGET /snapshot.cgi

現在の画面をimage/jpeg形式で取得できる。


GET /media/?action=stream、またはGET /videostream.cgi

現在の映像ストリームをMotion JPEG形式で取得できる。

Motion JPEGは、フレーム毎にjpeg形式で圧縮された映像ストリームで音声は含まない。

各フレームは、レスポンスヘッダのContent-Typeに含まれるboundaryで指定された文字列と短いヘッダで区別される。

Content-Type: multipart/x-mixed-replace;boundary=ipcamera
--ipcamera
Content-Type: image/jpeg
Content-Length: 31330

* binary data *

GET /videostream.asf

現在の映像・音声ストリームをASF(Advanced Streaming/Systems Format)形式で取得できる。

ASFについての詳細はASF File Structureを参照


POST /goform/cfgLan

カメラ端末としての名称、DHCPクライアント機能の有効/無効、利用するTCPポート番号を設定する。

curl -d 'hostname=IPCamera&chklan_dhcp=on&webPort=7777' "http://[ipcamera]/goform/cfgLan"

DHCPクライアント機能の無効にする場合は、端末のIPアドレス、サブネットマスク、ゲートウェイおよびDNSのIPアドレスを指定する。

curl -d 'hostname=IPCamera&lanIp=192.168.0.128&lanNetmask=255.255.255.0&lanGateway=192.168.0.1&lanDNS=192.168.0.1&webPort=7777' "http://[ipcamera]/goform/cfgLan"

空データを送ると端末名称はipCameraに、DHCPクライアント機能は有効に、TCPポート番号は(恐らく)現在接続しているポート番号に、それぞれ設定される。


POST /goform/formSetUpnp

UPnP機能の有効/無効を設定する。

POSTデータとしてchkUpnp=onを送るとUPnP機能を有効にする。有効にするとカメラのTCPポート49152(ファームウェアによっては違うかも…)が開く。

curl -d 'chkUpnp=on' "http://[ipcamera]/goform/formSetUpnp"

空データを送るとUPnP機能は無効になる。


POST /goform/formSetDDNS

DDNS機能の有効/無効を設定する。

POSTデータとしてchkDDNS=onを送るとDDNS機能を有効にする。元々はTENVIS社が用意しているドメインでカメラへアクセスできるようにする機能のようだが既にDDNSは稼働していない模様(?)

いずれにしろ、こんな危険な機能は即刻無効にすべきだろう。

curl -d 'chkDDNS=on' "http://[ipcamera]/goform/formSetDDNS"

空データを送るとDDNS機能は無効になる。


POST /goform/addStaProfile

Wifi APのプロファイルを追加する。

POSTに必要なデータは以下の通り。

name value/type Description
profile_name string max length: 32
Ssid string max length: 32
network_type 0 802.11 p2p
1 infra
security_infra_mode 0 OPEN
1 SHARED
4 WPA-Personal
7 WPA2-Personal
cipher 0 TKIP
1 AES
passphrase string max length: 64

POST /goform/setStaProfile

Wifi APプロファイルの削除/アクティベートを行う。

POSTに必要なデータは以下の通り。

name value/type Description
selectedProfile number Target profile number.
hiddenButton "delete" Delte profile.
"activate" Activate profile.