AV HTTP 1.1 (1.0.0)

Download OpenAPI specification:Download

HTTP protocol is supported by all Arecont Vision cameras and is supported by almost all third party software systems or plug-ins that support standard IP video over HTTP. Developers would find it easy and quick to locate technical resources to help integrate Arecont cameras using HTTP protocol. Camera performance in terms of frame rate is somewhat slower via HTTP than via TFTP but is comparable to other multi-megapixel products available on the market.

JPEG/MJPEG

Pull JPEG images individually or full MJPEG streams.

Get an MJPEG Stream

open a continuous mjpeg stream from the camera

query Parameters
res
string
Enum:"full" "half"

The resolution MJPEGs you want to return

x0
integer <int32>

Left coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

y0
integer <int32>

Top coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

x1
integer <int32>

Right coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

y1
integer

Bottom coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

doublescan
integer [ 0 .. 1 ]

Effectively a boolean that determines whether or not the camera should delay image output until a new image is available.

fps
integer [ 0 .. 30 ]

Get or set the camera framerate. values over the camera's famerate will return the camera's maximum framerate (model dependent).

quality
integer [ 1 .. 21 ]

The compression quality of the jpeg image

ver
string
Enum:"HTTP/1.0" "HTTP/1.1"

Arecont Vision cameras support both HTTP/1.0 and HTTP/1.1 protocols as defined by RFC-1945 and RFC2068, respectively. While HTTP/1.0 is simple, it closes the transmission after each image, forcing the client to incur a round trip delay; this limits the speed of image transmission when you request individual images rather than an mjpeg stream. However, HTTP/1.0 is reliable and supported by all HTTP implementations, albeit with limited speed. By default, Arecont Vision cameras are use HTTP/1.0 protocol regardless of the HTTP version used by the client.

Use HTTP/1.1 if you want faster full duplex communication and image delivery.

channel
string
Value:"scaled"

Request down-scaled images. Because you preset downscaled image settings (through the UI or the /set endpoint), this parameter does not require size information.

sd
string
Enum:"on" "off"

Use to request images/video recorded on the SD card. playback plays back video in real time; download lets you stream video as fast as possible.

Responses

200

Returns a stream

get /mjpeg
http://<camera IP address>/mjpeg

Get a JPEG Frame

Pull JPEG frames individually from the camera.

query Parameters
res
string
Enum:"full" "half"

The resolution MJPEGs you want to return

x0
integer <int32>

Left coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

y0
integer <int32>

Top coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

x1
integer <int32>

Right coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

y1
integer

Bottom coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

doublescan
integer [ 0 .. 1 ]

Effectively a boolean that determines whether or not the camera should delay image output until a new image is available.

quality
integer [ 1 .. 21 ]

The compression quality of the jpeg image

ID
integer >= 1

Ignored by the camera, but you might set random IDs to force browsers to refresh a frame. Some browsers might display a cached image if a previous URL is reused without modifying the ID field

Responses

200

Returns an image

get /image
http://<camera IP address>/image

h.264 Streaming

Pull h.264 quality images individually or full video stream.

Pull an H.264 Frame

Pull H.264 frames from cameras. The first frame or the stream is always an IDR (Intra) frame followed by multiple P (Inter) frames. The default number of P-frames is 50, and can be modified via register 3:21 using one of the following HTTP commands —

http://camera_ip/set?keyframeinterval=(0..100) http://camera_ip/setreg?page=3&reg=21&val=(number of P-frames)

You can get your current P-frame setting from http://camera_ip/getreg?page=3&reg=21

query Parameters
res
string
Enum:"full" "half"

The resolution MJPEGs you want to return

x0
integer <int32>

Left coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

y0
integer <int32>

Top coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

x1
integer <int32>

Right coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

y1
integer

Bottom coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

qp
string [ 16 .. 36 ]

The quantization parameter for the H.264 encoder. Sets the target qp. Lower qp indicates a higher quality image. This paramaeter is ignored if your request includes the bitrate parameter.

doublescan
integer [ 0 .. 1 ]

Effectively a boolean that determines whether or not the camera should delay image output until a new image is available.

ssn
integer [ 1 .. 65535 ]

Stream identifier — distinguishes multiple streams from one another. Use a unique ssn for each stream with a unique image size, quality and/or frame rate. Each camera supports up to eight simultaneous non-identical streams. Each client must have a unique (ip:ssn)

iframe
integer [ 0 .. 1 ]

Effectively a boolean (0 or 1). Set to 1 will force the camera to return an Intra frame (I-frame) with a corresponding SPS and PPS as an IDR slice, so that the stream is decodable from this point. When opening a new stream (as when changing the image size and/or frame rate) the I-frame is sent automatically regardless of the input value of iframe. To reduce the stream size, reduce the frequency of iframe = 1 in requests. You can set the P-frames for any of the streams sent by the camera is set using one of the following HTTP commands : http://camera_ip/setreg?page=3&reg=21&val=(0..100)

http://camera_ip/set?keyframeinterval=(0..100) When the on-camera counter of P-frames fills up, the camera will return an I-frame even if iframe in the request is set to 0. To find out whether an I-frame was received, check the HTTP Content Type.

bitrate
integer [ 1 .. 65535 ]

Sets a constant bitrate in kilobits per second. If this parameter is present in the request, the QP parameter is ignored, and the camera adjusts quantization parameters automatically to maintain the specified bitrate.

intra_period
integer [ 0 .. 255 ]

Valid when requesting a non-zero bitrate and periodically requesting iframe=1. Specifies the intra-frame period during which you are sending requests with iframe=1. If you do not specify intra_period, bitrate control will not function correctly unless the actual period of sending iframe=1 requests is the same as the number of P-frames specified in register 3:21 of the camera via one of the commands described above. If you do not request iframe=1 at all, then the intra_period parameter is not required and bitrate control will rely on the number of P-frames set in register 3:21.

Responses

200

Returns a stream according to the parameters in your request.

Each frame sent by the camera may contain multiple zero bytes at the end. A Unit Delimiter (UD) is not used. Although this does not contradict the ITU-T H.264 standard (ISO/IEC 14496-10), some decoders may delay decoded frames by one due to the absence of the UD. If this presents a problem, replace all zero bytes at the end with the UD, a sequence of the following five bytes — 0x00 0x00 0x01 0x09 0x10. The number of zero bytes at the end of a frame may be significant (up to a few hundred bytes). Replacing them with the UD will also reduce the stream size

get /h264
http://<camera IP address>/h264

Pull an H.264 Video Stream

Pull a continuous H.264 video stream with boundary-separated frames.

query Parameters
res
string
Enum:"full" "half"

The resolution MJPEGs you want to return

x0
integer <int32>

Left coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

y0
integer <int32>

Top coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

x1
integer <int32>

Right coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

y1
integer

Bottom coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

qp
string [ 16 .. 36 ]

The quantization parameter for the H.264 encoder. Sets the target qp. Lower qp indicates a higher quality image. This paramaeter is ignored if your request includes the bitrate parameter.

doublescan
integer [ 0 .. 1 ]

Effectively a boolean that determines whether or not the camera should delay image output until a new image is available.

ssn
integer [ 1 .. 65535 ]

Stream identifier — distinguishes multiple streams from one another. Use a unique ssn for each stream with a unique image size, quality and/or frame rate. Each camera supports up to eight simultaneous non-identical streams. Each client must have a unique (ip:ssn)

bitrate
integer [ 1 .. 65535 ]

Sets a constant bitrate in kilobits per second. If this parameter is present in the request, the QP parameter is ignored, and the camera adjusts quantization parameters automatically to maintain the specified bitrate.

fps
integer [ 0 .. 30 ]

Get or set the camera framerate. values over the camera's famerate will return the camera's maximum framerate (model dependent).

ver
string
Enum:"HTTP/1.0" "HTTP/1.1"

Arecont Vision cameras support both HTTP/1.0 and HTTP/1.1 protocols as defined by RFC-1945 and RFC2068, respectively. While HTTP/1.0 is simple, it closes the transmission after each image, forcing the client to incur a round trip delay; this limits the speed of image transmission when you request individual images rather than an mjpeg stream. However, HTTP/1.0 is reliable and supported by all HTTP implementations, albeit with limited speed. By default, Arecont Vision cameras are use HTTP/1.0 protocol regardless of the HTTP version used by the client.

Use HTTP/1.1 if you want faster full duplex communication and image delivery.

channel
string
Value:"scaled"

Request down-scaled images. Because you preset downscaled image settings (through the UI or the /set endpoint), this parameter does not require size information.

sd
string
Enum:"on" "off"

Use to request images/video recorded on the SD card. playback plays back video in real time; download lets you stream video as fast as possible.

Responses

200

Returns a stream according to the parameters in your request.

get /h264stream
http://<camera IP address>/h264stream

Multisensor Camera Streaming

Get images or video from a sensor belonging to a multisensor camera.

Get an MJPEG Stream

open a continuous mjpeg stream from a sensor belonging to a multisensor camera.

path Parameters
channel
required
integer [ 1 .. 4 ]

The ID of the channel you want to return information for. If you do not specify the channel, the camera will transmit the next available image from any of the enabled channels.

query Parameters
res
string
Enum:"full" "half"

The resolution MJPEGs you want to return

x0
integer <int32>

Left coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

y0
integer <int32>

Top coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

x1
integer <int32>

Right coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

y1
integer

Bottom coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

doublescan
integer [ 0 .. 1 ]

Effectively a boolean that determines whether or not the camera should delay image output until a new image is available.

fps
integer [ 0 .. 30 ]

Get or set the camera framerate. values over the camera's famerate will return the camera's maximum framerate (model dependent).

quality
integer [ 1 .. 21 ]

The compression quality of the jpeg image

ver
string
Enum:"HTTP/1.0" "HTTP/1.1"

Arecont Vision cameras support both HTTP/1.0 and HTTP/1.1 protocols as defined by RFC-1945 and RFC2068, respectively. While HTTP/1.0 is simple, it closes the transmission after each image, forcing the client to incur a round trip delay; this limits the speed of image transmission when you request individual images rather than an mjpeg stream. However, HTTP/1.0 is reliable and supported by all HTTP implementations, albeit with limited speed. By default, Arecont Vision cameras are use HTTP/1.0 protocol regardless of the HTTP version used by the client.

Use HTTP/1.1 if you want faster full duplex communication and image delivery.

channel
string
Value:"scaled"

Request down-scaled images. Because you preset downscaled image settings (through the UI or the /set endpoint), this parameter does not require size information.

ssn
integer [ 1 .. 65535 ]

Stream identifier — distinguishes multiple streams from one another. Use a unique ssn for each stream with a unique image size, quality and/or frame rate. Each camera supports up to eight simultaneous non-identical streams. Each client must have a unique (ip:ssn)

ID
integer >= 1

Ignored by the camera, but you might set random IDs to force browsers to refresh a frame. Some browsers might display a cached image if a previous URL is reused without modifying the ID field

sd
string
Enum:"on" "off"

Use to request images/video recorded on the SD card. playback plays back video in real time; download lets you stream video as fast as possible.

Responses

200

Returns a stream

get /mjpeg{channel}
http://<camera IP address>/mjpeg{channel}

Get a JPEG Frame

Pull JPEG frames individually from the camera.

path Parameters
channel
required
integer [ 1 .. 4 ]

The ID of the channel you want to return information for. If you do not specify the channel, the camera will transmit the next available image from any of the enabled channels.

query Parameters
res
string
Enum:"full" "half"

The resolution MJPEGs you want to return

x0
integer <int32>

Left coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

y0
integer <int32>

Top coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

x1
integer <int32>

Right coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

y1
integer

Bottom coordinate, used to offset the image. This value should be divisible by 32 if res=full or 64 if res=half.

doublescan
integer [ 0 .. 1 ]

Effectively a boolean that determines whether or not the camera should delay image output until a new image is available.

quality
integer [ 1 .. 21 ]

The compression quality of the jpeg image

ID
integer >= 1

Ignored by the camera, but you might set random IDs to force browsers to refresh a frame. Some browsers might display a cached image if a previous URL is reused without modifying the ID field

ssn
integer [ 1 .. 65535 ]

Stream identifier — distinguishes multiple streams from one another. Use a unique ssn for each stream with a unique image size, quality and/or frame rate. Each camera supports up to eight simultaneous non-identical streams. Each client must have a unique (ip:ssn)

Responses

200

Returns an image

get /image{channel}
http://<camera IP address>/image{channel}

Configuration

Get and set camera configuration

Get Multisensor Camera Settings

Return settings for a single channel in a multi-sensor camera. In general, you should use only one query parameter at a time.

path Parameters
channel
required
integer [ 1 .. 4 ]

The ID of the channel you want to get or set information for.

query Parameters
brightness
integer [ -50 .. 50 ]

Sets brightness for the camera or channel.

sharpness
integer [ 0 .. 4 ]

Sets sharpness for the camera or channel.

saturation
integer [ 0 .. 6 ]

Sets color saturation for the camera or channel.

blue
integer [ -10 .. 10 ]

Sets blue balance for the camera or channel.

red
integer [ -10 .. 10 ]

Sets red balance for the camera or channel.

illum
string
Enum:"auto" "indoor" "outdoor" "mlx"

Sets illumination for the camera or channel.

freq
integer [ 50 .. 60 ]

Mains frequency in Hz, used for indoor lighting compensation.

lowlight
string
Enum:"highspeed" "speed" "balance" "quality" "moonlight"

Exposure (low light) mode.

shortexposures
integer [ 1 .. 80 ]

Shutter time in high-speed exposure mode, set in milliseconds.

autoexp
string
Enum:"on" "off"

Auto exposure mode

exposure
string
Enum:"auto" "on" "off"

Auto exposure mode

kneepoint
integer [ 1 .. 100 ]

Custom mode setting

analoggain
integer [ 1 .. 100 ]

Custom mode setting

maxkneegain
integer [ 1 .. 100 ]

Custom mode setting

maxexptime
integer [ 1 .. 100 ]

Custom mode setting

maxdigitalgain
integer [ 1 .. 100 ]

Custom mode setting

mdmode
string
Enum:"on" "off"

Get or set motion alarm settings

motiondetect
string
Enum:"on" "off"

Get or set motion detection settings

mdtotalzones
integer

Set regular (64) or extended motion detection mode (1024). 4k cameras support motion detection in extended mode either.

mdlevelthreshold
integer [ 2 .. 31 ]

Motion detection zone threshold

mdlevelthreshold
integer [ 1 .. 255 ]

Motion detection zone detail

mdprivacymask
integer

Motion detection privacy mask

mdlevelthreshold
boolean

Motion detection zone result

pmask
string
Enum:"on" "off"

Get or set the privacy mask. Use pmask<direction> to set the privacy mask block.

pmaskleft
integer [ 0 .. 1023 ]

Get, set, or erace a privacy mask block (32 x 32 pixels per block).

pmasktop
integer [ 0 .. 1023 ]

Get, set, or erace a privacy mask block (32 x 32 pixels per block).

pmaskright
integer [ 0 .. 1023 ]

Get, set, or erace a privacy mask block (32 x 32 pixels per block).

pmaskbottom
integer [ 0 .. 1023 ]

Get, set, or erace a privacy mask block (32 x 32 pixels per block).

streamip
string <ipv4> ^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$

Get or set the multicast IP address.

rtpport
integer [ 0 .. 65535 ]

Get or set the multicast port.

sapip
string <ipv4> ^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$

Get or set the multicast SAP IP address.

vertical_shift
integer

Shift sensors vertically.

pan
integer

Set a pan value.

tilt
integer

Set a tilt value.

zoom
string or integer

Set zoom moving steps.

ptz
string or integer

Use to engage, record, or save a preset.

switcher
boolean

Run this command to detect a pan module collision with another module and if module 2 is in home.

  • Bit 0 to 3 of the returned value are the status of collision sensor on channel 1 to 4.
  • Bit 4 is the home position sensor status.

Responses

200

Returns the parameters specified in the query.

get /get{channel}
http://<camera IP address>/get{channel}