<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.elphel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dvdkhlng</id>
		<title>ElphelWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.elphel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dvdkhlng"/>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/wiki/Special:Contributions/Dvdkhlng"/>
		<updated>2026-05-12T09:28:59Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>https://wiki.elphel.com/index.php?title=Video_API_legacy&amp;diff=2820</id>
		<title>Video API legacy</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=Video_API_legacy&amp;diff=2820"/>
				<updated>2006-12-01T17:45:19Z</updated>
		
		<summary type="html">&lt;p&gt;Dvdkhlng: /* Multicast */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{en|ru=First_Acquaintance_With_Video_API.Ru|cn=Video_API_Extensions.cn}}&lt;br /&gt;
&lt;br /&gt;
Anyone who has even the slightest skill at writing HTML pages can use the Axis Video API. And with additional software installed, it is possible to create a powerful video observation system with the capabilities of recording video archives, journalizing, viewing of archives, etc. Note [[Change API]] an how to enable the Video API.&lt;br /&gt;
&lt;br /&gt;
== Information about image dimensions ==&lt;br /&gt;
Some default parameters and some which are transferred when the image is obtained can change the image dimensions. For example parameters such as '''resolution, e_dcm_hor, e_dcm_vert, e_woi_width, e_woi_height, e_woi_left, e_woi_top'''. Sometimes a client application needs to know about the dimensions of the received image in advance (for example, for reserving a necessary area in a browser page or application window). You can obtain this information at the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/var/axis-cgi/view/imagesize.cgi?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
It is possible to transfer with this script any of the parameters which are supported by image.cgi and video.cgi. For example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/var/axis-cgi/view/imagesize.cgi?e_dcm_vert=2&amp;amp;e_dcm_hor=2&amp;amp;e_woi_width=1800&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The server response is:&lt;br /&gt;
&lt;br /&gt;
 image width  = 896&lt;br /&gt;
 image height = 768&lt;br /&gt;
&lt;br /&gt;
== Static images ==&lt;br /&gt;
To retrieve an image from the camera it is enough to type the following path in the browser's address field:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/jpg/image.jpg &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note''' 192.168.0.9 - this is the default camera IP-address. If you have changed the camera IP-address, please, type your variant.&lt;br /&gt;
&lt;br /&gt;
It is also possible to ask the camera to send the image with a certain set of parameters. The path which can be used for this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/jpg/image.cgi?param1=xxx&amp;amp;param2=yyy&amp;amp;.....&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
See the list of accessible parameters below.&lt;br /&gt;
 &lt;br /&gt;
'''resolution'''=&amp;lt;string&amp;gt;    Specify the resolution of the returned image, for example 800x600.  Product-dependent.  You can check what values are supported by your camera using the address:  ''&amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=Properties.Image.Resolution&amp;lt;/nowiki&amp;gt;''&lt;br /&gt;
 &lt;br /&gt;
'''compression'''=&amp;lt;int&amp;gt;    Adjusts the compression level of the image. Higher values correspond to higher compression, i.e. lower quality and smaller image size.  It can take a value from 0 to 100. In many cases 30 is optimal.&lt;br /&gt;
 &lt;br /&gt;
'''colorlevel'''=&amp;lt;int&amp;gt;    Sets level of color or grey-scale. It can have value from 0 to 100.  0 = grey-scale, 100 = full color.&lt;br /&gt;
 &lt;br /&gt;
'''color'''=&amp;lt;int&amp;gt;    Enables/disables color.  It can have value 0 or 1.  0 = black and white, 1 = color.&lt;br /&gt;
 &lt;br /&gt;
'''rotation'''=&amp;lt;int&amp;gt;    Rotates the image clockwise.  Product-dependent.  You can check what values are supported by your camera at the address:  ''&amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=Properties.Image.Rotation&amp;lt;/nowiki&amp;gt;''&lt;br /&gt;
 &lt;br /&gt;
Apart from the standard parameters, enumerated above, there are some extensions, which make it possible to use the Elphel cameras more flexibly. You can read more detailed information about these extensions at [[Video API Extensions]].&lt;br /&gt;
&lt;br /&gt;
Example of obtaining an image with the assigned set of parameters:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/jpg/image.cgi?resolution=1024x768&amp;amp;colorlrvel=45&amp;amp;compression=30&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
If some parameters are not assigned, the default value is used. You can see the default values at the address:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=Image.I0.Appearance&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
You can change the default values. For this it is necessary to specify the parameter action=update. For example:&lt;br /&gt;
   &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Image.I0.Appearance.Resolution=512x384&amp;amp;Image.I0.Appearance.Rotation=180&amp;amp;ColorEnabled=no&amp;amp;Image.I0.Appearance.Compression=50&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.ColorLevel=60&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
==Video stream==&lt;br /&gt;
&lt;br /&gt;
The cameras can be used to receive a continuous video stream. This stream can be transferred by two protocols - HTTP and RTP.&lt;br /&gt;
   &lt;br /&gt;
===HTTP===&lt;br /&gt;
====Jpeg====&lt;br /&gt;
The stream is a sequence of jpeg-files, separated by a special marking line. This transfer format is named Multipart Jpeg or MPJPG. For receiving a stream in this format you can use the following path:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/mjpg/video.mjpg&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
As with static images, you can also assign parameters for the video stream. For this you can use the following path:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/mjpg/video.cgi?param1=xxx&amp;amp;param2=yyy&amp;amp;.....&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Apart from the parameters, enumerated above, such as '''resolution, compression, colorlevel, color, rotation''', you can also assign:&lt;br /&gt;
    &lt;br /&gt;
'''duration=&amp;lt;int&amp;gt;'''    Specifies for how many seconds the video will be generated and pushed to the client. 0 = unlimited.&lt;br /&gt;
    &lt;br /&gt;
'''nbrofframes=&amp;lt;int&amp;gt;'''    Specifies how many frames the server will generate and push. 0 = unlimited.&lt;br /&gt;
    &lt;br /&gt;
'''fps=&amp;lt;int&amp;gt;'''    Using fps it is possible to specify the frame rate from the server. 0 = unlimited.&lt;br /&gt;
    &lt;br /&gt;
By default all these parameters are assigned to 0. You can change the default settings, for example, in this way:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Image.I0.Stream.Duration=100&amp;amp;Image.I0.Stream.FPS=5&amp;amp;Image.I0.Stream.NbrOfFrames=1000&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apart from the standard parameters, enumerated above, there are extensions, which allow you to use the Elphel cameras more flexibly. More detailed information about these extensions can be found at [[Video API Extensions]].&lt;br /&gt;
   &lt;br /&gt;
On the page [[Video API And Client Applications]] you can find some information about players, which can play the MPJPG video stream.&lt;br /&gt;
&lt;br /&gt;
====Theora====&lt;br /&gt;
&lt;br /&gt;
     &lt;br /&gt;
===RTP===&lt;br /&gt;
====Video Parameters====&lt;br /&gt;
Note that due to obscure reasons, parameters set via&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;root.ImageSource.I0.Sensor...=...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will not take effect for RTP streams until the camera is restarted, although they will take effect immediately for videos streamed directly via HTTP. &lt;br /&gt;
&lt;br /&gt;
You can access the list of parameters used for RTP streaming, by accessing the following URL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=ImageSource.I0.E_CurrentState&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Jpeg====&lt;br /&gt;
Each jpeg-file is divided into many files with a size less than 1500 bytes which are transferred by RTP/UDP protocol through the network. In this case the data transmission is substantially accelerated, but the reliability of transfer falls, which can overload some networks and lead to the loss of a certain amount of video data.&lt;br /&gt;
&lt;br /&gt;
On the page [[Video API And Client Applications]] you can find information about players, which can play the RTP/JPEG stream.&lt;br /&gt;
&lt;br /&gt;
=====Multicast=====&lt;br /&gt;
To obtain a video stream using RTP/Multicast it is sufficient to set the special variable:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Network.RTP.R0.MulticastAlways=yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The video stream will be generated with the default settings of variables for Multicast address, destination port and TTL. These variables can be changed by the following way:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Network.RTP.R0.VideoAddress=224.21.23.44&amp;amp;Network.RTP.R0.VideoPort=22222&amp;amp;Network.RTP.R0.TTL=90&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that while &amp;lt;tt&amp;gt;Network.RTP.R0.MulticastAlways&amp;lt;/tt&amp;gt; is enabled, the HTTP MJPEG interface will become very slow. So you might want to disable it if not used by your application.&lt;br /&gt;
======SDP======&lt;br /&gt;
This video stream can be received, recorded or played back by MPlayer, QuickTime, vic (from the mush package). For this it is necessary to obtain the SDP-file from camera:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/mjpg/media.sdp&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The saved file should be transferred to your preferred player. For example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;mplayer sdp://media.sdp&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
======RTSP======&lt;br /&gt;
The original Axis Video API specification does not support RTSP in Multicast mode. In the Elphel cameras this possibility has been added as a protocol extension.&lt;br /&gt;
&lt;br /&gt;
=====Unicast=====&lt;br /&gt;
======RTSP======&lt;br /&gt;
&lt;br /&gt;
====Theora====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Obtaining information about system functioning ==&lt;br /&gt;
You can obtain information about the system at the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/systemlog.cgi&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
or more detailed information at the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/serverreport.cgi&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Date and Time ==&lt;br /&gt;
=== Retrieving the Date and Time ===&lt;br /&gt;
To see the time which is stored inside the camera you can use the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/date.cgi?action=get&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== Setting Date and Time ===&lt;br /&gt;
For setting the date and time you must use the following parameters:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|action ||-|| set ||&lt;br /&gt;
|-&lt;br /&gt;
|year ||-|| 1970 - 2031 || Current year.&lt;br /&gt;
|-&lt;br /&gt;
|month ||-|| 1 - 12 || Current month.&lt;br /&gt;
|-&lt;br /&gt;
|day ||-|| 1 - 31 || Current day.&lt;br /&gt;
|-&lt;br /&gt;
|hour ||-|| 0 - 23 || Current hour.&lt;br /&gt;
|-&lt;br /&gt;
|minute ||-|| 0 - 59 || Current minute.&lt;br /&gt;
|-&lt;br /&gt;
|second ||-|| 0 - 59 || Current second.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/date.cgi?action=set&amp;amp;year=2006&amp;amp;month=4&amp;amp;day=15&amp;amp;hour=14&amp;amp;minute=20&amp;amp;second=40&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== User administration ==&lt;br /&gt;
The Video API allows:&lt;br /&gt;
*registration and deleting of users&lt;br /&gt;
*changing user passwords &lt;br /&gt;
*adding users to special groups&lt;br /&gt;
=== Deleting a user ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=remove&amp;amp;user=joe&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== Creating a new user ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=joe&amp;amp;pwd=PASSWD&amp;amp;grp=axuser&amp;amp;sgrp=axview&amp;amp;comment=JOE&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Creating a new user is slightly different for Elphel and Axis cameras. All created users which will have the access to camera through Video API MUST belong to the '''axoper''' group. Also these users must belong to one or more secondary groups:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''axview''' ||-|| access is permitted to scripts which are placed in directory /axis-cgi/view/&lt;br /&gt;
|-&lt;br /&gt;
|'''axoper''' ||-|| access is permitted to scripts which are placed in directory /axis-cgi/operator/&lt;br /&gt;
|-&lt;br /&gt;
|'''axadmin''' ||-|| access is permitted to scripts which are placed in directory /axis-cgi/admin/&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
At the same time it is necessary to pay special attention, because users who have Administrator rights must be entered into all three groups, users who have Operator rights must be entered into the axoper and axview groups, users who have Unprivileged user rights must be entered into the axview group only.&lt;br /&gt;
Creating of three users with different rights, for example:&lt;br /&gt;
*Administrator:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=administrator&amp;amp;pwd=foo&amp;amp;grp=axuser&amp;amp;sgrp=axadmin:axoper:axview&amp;amp;comment=Administrator&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*Operator:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=operator&amp;amp;pwd=foo&amp;amp;grp=axuser&amp;amp;sgrp=axoper:axview&amp;amp;comment=Operator&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Unprivileged user:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=administrator&amp;amp;pwd=foo&amp;amp;grp=axuser&amp;amp;sgrp=axview&amp;amp;comment=Viewer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Password changing ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=update&amp;amp;user=joe&amp;amp;pwd=pass&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changing the access rights for secondary group ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=update&amp;amp;user=joe&amp;amp;sgrp=axview:axoper&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rebooting the camera ==&lt;br /&gt;
For camera rebooting, you should use the following address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/var/axis-cgi/admin/restart.cgi&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exposure control ==&lt;br /&gt;
The Elphel cameras support exposure control with the standard and advanced interface. You can read about Advanced Settings on the page [[Video_API_Extensions]]&lt;br /&gt;
&lt;br /&gt;
=== Autoexposure ===&lt;br /&gt;
To enable autoexposure you can use the following command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.Exposure=auto&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Autoexposure parameters ====&lt;br /&gt;
It is possible to assign the area for autoexposure calculation. You can do this using the following command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.ExposureWindow=full&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The ExposureWindow can have the values '''full''', '''center''', '''lower''', '''upper''', '''right''' and '''left'''.&lt;br /&gt;
&lt;br /&gt;
Also it possible set a maximum exposure time (number of micro seconds) :&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;root.ImageSource.I0.Sensor.MaxExposureTime=150000&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manual control of exposure ===&lt;br /&gt;
To enable manual control of exposure you can use the following command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.Exposure=manual&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also you can set the time an image is exposed (0.1 msec step):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;root.ImageSource.I0.Sensor.Shutter=50&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''For example''' Shutter=50 means 5000 microseconds or 5 miliseconds.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
If your attempts to access images fail with &amp;lt;tt&amp;gt;500 Server Error&amp;lt;/tt&amp;gt;, you may have to explicitely [[Change API|enable the Video API]].&lt;/div&gt;</summary>
		<author><name>Dvdkhlng</name></author>	</entry>

	<entry>
		<id>https://wiki.elphel.com/index.php?title=Camera_software&amp;diff=2819</id>
		<title>Camera software</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=Camera_software&amp;diff=2819"/>
				<updated>2006-12-01T17:39:54Z</updated>
		
		<summary type="html">&lt;p&gt;Dvdkhlng: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Manual Header}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
All the camera software is provided under the terms of the GNU General Public License. All the source code is available inside the camera but you may want to visit [http://www.elphel.com Elphel web site] for the latest version.&lt;br /&gt;
&lt;br /&gt;
== Software Architecture of Elphel 3x3 cameras ==&lt;br /&gt;
Software in the Elphel cameras started from [http://developer.axis.com/ Axis Developer Boards Software] and was amended for the camera specific functions. It was modified to work with newer hardware (models 303-313/323-333), support more features and now seems to be a good time to make a major redesign instead of applying incremental changes.&lt;br /&gt;
&lt;br /&gt;
Some discussion has already started in Russian here - [[Nc3x3]]&lt;br /&gt;
&lt;br /&gt;
Related to the architecture are the [[#Camera Interface| Camera Interface]] and the [[#Client Software| Client Software]]&lt;br /&gt;
=== Camera Interface ===&lt;br /&gt;
The camera can be accessed from client-software using the [[Video API]] (compatible with [[AxisAPI|Axis network cameras]]), or using the more ancient [[ccam.cgi]] interface. The user must [[Change API|select the interface]] that he wishes to use. If the [[ccam.cgi]] interface is [[Change API|selected]], an AJAX web-interface will allow simple access to the camera, by visiting the cameras IP-address (default: 192.168.0.9) with a web-browser.&lt;br /&gt;
&lt;br /&gt;
=== Video Server ===&lt;br /&gt;
PC-based video server that will archive incoming Ogg Theora incoming streams from several cameras and transcode them on the fly to lower resolution (binary decimation, windowing) and frame rate (i.e. using only key frames) presenting multiple streams (real time and recorded) to the operator. The external interface of the server might be one of the industry standards and compatible with 3rd party legacy software.&lt;br /&gt;
&lt;br /&gt;
=== See also ===&lt;br /&gt;
[[Roadmap#Software Architecture of Elphel 3x3 cameras]]&lt;br /&gt;
&lt;br /&gt;
== Client Software ==&lt;br /&gt;
Folowed software are included in the [[Live CD]]&lt;br /&gt;
&lt;br /&gt;
=== Common software for video ===&lt;br /&gt;
==== mplayer ====&lt;br /&gt;
This is a movie player. It can play files and streams with many different video and audio formats.&lt;br /&gt;
&lt;br /&gt;
To watch an rtp stream from our cameras you may use the following command:&lt;br /&gt;
 mplayer rtsp://camera-ip:7070/&lt;br /&gt;
Where '''camera-ip''' is the ip address of the camera.&lt;br /&gt;
&lt;br /&gt;
To play a file recorded with mencoder or any other videofile you may use the following command:&lt;br /&gt;
 mplayer path-to-file&lt;br /&gt;
&lt;br /&gt;
Or you may use the KDE menu to run mplayer in dialog mode&lt;br /&gt;
&lt;br /&gt;
You can use the keyboard to control playing&lt;br /&gt;
*'''space''' pause/continue&lt;br /&gt;
*'''Q''' quit&lt;br /&gt;
&lt;br /&gt;
See the mplayer man page and [http://www.mplayerhq.hu/homepage/design7/info.html site] for more information.&lt;br /&gt;
&lt;br /&gt;
==== mencoder ====&lt;br /&gt;
This program is included in the mplayer package.&lt;br /&gt;
It can transcode video and audio to and from many different formats.&lt;br /&gt;
For more about this see the man page. Type:&lt;br /&gt;
 man mencoder&lt;br /&gt;
To record the rtp stream from our cameras it is better to use mencoder in copy mode (without reencoding):&lt;br /&gt;
 mencoder rtsp://camera.ip:7070 -ovc copy -fps &amp;lt;fps&amp;gt; -o filename.avi&lt;br /&gt;
where:&lt;br /&gt;
*'''camera.ip''' - DNS name or IP address of the camera;&lt;br /&gt;
*'''&amp;lt;fps&amp;gt;''' - approximate value of the frame frequency (this parameter is mandatory);&lt;br /&gt;
*'''filename.avi''' - the name of an output file.&lt;br /&gt;
Close the terminal window or press Ctrl+C to finish recording.&lt;br /&gt;
&lt;br /&gt;
The following program written in unix shell will split recording video into blocks with the specified number of frames:&lt;br /&gt;
 while true ; do&lt;br /&gt;
 f=`date -Iseconds`&lt;br /&gt;
 mencoder rtsp://camera.ip:7070 -ovc copy -fps &amp;lt;fps&amp;gt; -frames 1000 -o $f.avi&lt;br /&gt;
 done&lt;br /&gt;
You can enter these strings &amp;quot;as is&amp;quot; at the command prompt.&lt;br /&gt;
&lt;br /&gt;
==== ElphelOgm ====&lt;br /&gt;
A receiver for the multicast RTP stream. It generates ogg/mjpeg stream on stdout.&lt;br /&gt;
You can use it with mplayer or another video player to watch the RTP stream from the camera:&lt;br /&gt;
 ElphelOgm -a &amp;lt;multicast address&amp;gt; -p &amp;lt;multicast port&amp;gt; | mplayer -nocache -&lt;br /&gt;
Or to record stream to a file:&lt;br /&gt;
 ElphelOgm -a &amp;lt;multicast address&amp;gt; -p &amp;lt;multicast port&amp;gt; -f &amp;lt;fps&amp;gt; &amp;gt; video.ogm&lt;br /&gt;
Other tested players: VLC(some performance).&lt;br /&gt;
&lt;br /&gt;
See also [[Recorder| detailed description and roadmap]]&lt;br /&gt;
&lt;br /&gt;
==== ogm2mov ====&lt;br /&gt;
This program is used to recode ogg/mjpeg file to QuickTime .mov format.&lt;br /&gt;
Usage:&lt;br /&gt;
 ogm2mov -o &amp;lt;output file name&amp;gt; &amp;lt;input_file_name or &amp;quot;-&amp;quot; for stdin&amp;gt;&lt;br /&gt;
The program cannot write to a pipe, only to a file.&lt;br /&gt;
&lt;br /&gt;
==== GenReS plugin for Firefox ====&lt;br /&gt;
This is a plugin for Mozilla/Firefox to allow embedding of external applications like mplayer in the browser window.&lt;br /&gt;
&lt;br /&gt;
See also [[GenReS|description for javascript programmers]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Special software ===&lt;br /&gt;
==== netcardconfig ====&lt;br /&gt;
netcardconfig is an improved version of knoppix network configurator.&lt;br /&gt;
It needs root privileges.&lt;br /&gt;
It has two modes: interactive and batch.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
It is called from the startup script on our Live CD.&lt;br /&gt;
If you have installed netcardconfig-knoppix separately from our distro, it is possible you need to insert a call to the script in a system startup script.&lt;br /&gt;
Our version uses arping to check the IP address.&lt;br /&gt;
&lt;br /&gt;
==== netcamconfig ====&lt;br /&gt;
Run &amp;quot;netcamconfig&amp;quot; as user &amp;quot;root&amp;quot; to apply additional network settings and some kernel parameters.&lt;br /&gt;
&lt;br /&gt;
This script adds aliases for network cards with the most popular LAN ip adresses,&lt;br /&gt;
adds route records for multicast ip addresses&lt;br /&gt;
and changes kernel parameters to prevent long i/o operations blocking the hard drive, &lt;br /&gt;
&lt;br /&gt;
It is called from the startup script on our Live CD after netcardconfig.&lt;br /&gt;
If you have installed elphel-pack separately from our distro, you possibly need to insert a call for the script in a system startup script.&lt;br /&gt;
==== camsearch ====&lt;br /&gt;
This shell script scans the LAN using broadcast ping and detects elphel cameras.&lt;br /&gt;
It creates the file &amp;quot;cameras.html&amp;quot; in the current directory with links to found cameras and information about&lt;br /&gt;
software versions.&lt;br /&gt;
It is called from the system startup script after network configuration and can be restarted using the &amp;quot;Find cameras again&amp;quot; link on the KDE desktop.&lt;br /&gt;
&lt;br /&gt;
==== flashit ====&lt;br /&gt;
This program uses Axis low-level Ethernet packets [http://developer.axis.com/doc/old/software/tools/network_boot.html see &amp;quot;Theory&amp;quot;](some details do not apply to the camera) to communicate with a network bootloader hard-wired in the CPU internal ROM. This makes firmware upgrade a safe process - even if the process was interrupted and the camera was left in non-bootable state, it is always possible to start over again.&lt;br /&gt;
&lt;br /&gt;
When the program is started without arguments (e.g. by just clicking the icon on the desktop) it offers a choice of images available on the DVD. You may also download flash image files (elphel3?3*-flash.tar.bz2) from the files section on [https://sourceforge.net/projects/elphel Elphel project page at SourceForge.net], save them and use as an argument to flashit (i.e. drag-and-drop the file icon over flashit).&lt;br /&gt;
&lt;br /&gt;
To use the flashit utility, the camera should be started in firmware updgrade mode - the green button on the back panel should be held pressed down when the power is applied to the camera. You may do this in any sequence - if the program was started first, you will see the program output messages immediately after the camera is started in this special mode. The flashing process takes several minutes - both LEDs on the network connector stay on until it is over.&lt;br /&gt;
&lt;br /&gt;
==== sdp-helper ====&lt;br /&gt;
This script is designed for calling from a browser. It accepts a temporary &amp;quot;sdp&amp;quot; file downloaded from camera and calls [[#mplayer|mplayer]] to view the stream or [[#mencoder|mencoder]] to record it.&lt;br /&gt;
On the CD it processes files with the mime type text/sdp. The script deletes the given temporary file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
''Free Software and Open Hardware. Elphel, Inc., 2005''&lt;/div&gt;</summary>
		<author><name>Dvdkhlng</name></author>	</entry>

	<entry>
		<id>https://wiki.elphel.com/index.php?title=Video_API_legacy&amp;diff=2818</id>
		<title>Video API legacy</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=Video_API_legacy&amp;diff=2818"/>
				<updated>2006-12-01T13:02:52Z</updated>
		
		<summary type="html">&lt;p&gt;Dvdkhlng: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{en|ru=First_Acquaintance_With_Video_API.Ru|cn=Video_API_Extensions.cn}}&lt;br /&gt;
&lt;br /&gt;
Anyone who has even the slightest skill at writing HTML pages can use the Axis Video API. And with additional software installed, it is possible to create a powerful video observation system with the capabilities of recording video archives, journalizing, viewing of archives, etc. Note [[Change API]] an how to enable the Video API.&lt;br /&gt;
&lt;br /&gt;
== Information about image dimensions ==&lt;br /&gt;
Some default parameters and some which are transferred when the image is obtained can change the image dimensions. For example parameters such as '''resolution, e_dcm_hor, e_dcm_vert, e_woi_width, e_woi_height, e_woi_left, e_woi_top'''. Sometimes a client application needs to know about the dimensions of the received image in advance (for example, for reserving a necessary area in a browser page or application window). You can obtain this information at the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/var/axis-cgi/view/imagesize.cgi?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
It is possible to transfer with this script any of the parameters which are supported by image.cgi and video.cgi. For example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/var/axis-cgi/view/imagesize.cgi?e_dcm_vert=2&amp;amp;e_dcm_hor=2&amp;amp;e_woi_width=1800&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The server response is:&lt;br /&gt;
&lt;br /&gt;
 image width  = 896&lt;br /&gt;
 image height = 768&lt;br /&gt;
&lt;br /&gt;
== Static images ==&lt;br /&gt;
To retrieve an image from the camera it is enough to type the following path in the browser's address field:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/jpg/image.jpg &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note''' 192.168.0.9 - this is the default camera IP-address. If you have changed the camera IP-address, please, type your variant.&lt;br /&gt;
&lt;br /&gt;
It is also possible to ask the camera to send the image with a certain set of parameters. The path which can be used for this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/jpg/image.cgi?param1=xxx&amp;amp;param2=yyy&amp;amp;.....&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
See the list of accessible parameters below.&lt;br /&gt;
 &lt;br /&gt;
'''resolution'''=&amp;lt;string&amp;gt;    Specify the resolution of the returned image, for example 800x600.  Product-dependent.  You can check what values are supported by your camera using the address:  ''&amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=Properties.Image.Resolution&amp;lt;/nowiki&amp;gt;''&lt;br /&gt;
 &lt;br /&gt;
'''compression'''=&amp;lt;int&amp;gt;    Adjusts the compression level of the image. Higher values correspond to higher compression, i.e. lower quality and smaller image size.  It can take a value from 0 to 100. In many cases 30 is optimal.&lt;br /&gt;
 &lt;br /&gt;
'''colorlevel'''=&amp;lt;int&amp;gt;    Sets level of color or grey-scale. It can have value from 0 to 100.  0 = grey-scale, 100 = full color.&lt;br /&gt;
 &lt;br /&gt;
'''color'''=&amp;lt;int&amp;gt;    Enables/disables color.  It can have value 0 or 1.  0 = black and white, 1 = color.&lt;br /&gt;
 &lt;br /&gt;
'''rotation'''=&amp;lt;int&amp;gt;    Rotates the image clockwise.  Product-dependent.  You can check what values are supported by your camera at the address:  ''&amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=Properties.Image.Rotation&amp;lt;/nowiki&amp;gt;''&lt;br /&gt;
 &lt;br /&gt;
Apart from the standard parameters, enumerated above, there are some extensions, which make it possible to use the Elphel cameras more flexibly. You can read more detailed information about these extensions at [[Video API Extensions]].&lt;br /&gt;
&lt;br /&gt;
Example of obtaining an image with the assigned set of parameters:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/jpg/image.cgi?resolution=1024x768&amp;amp;colorlrvel=45&amp;amp;compression=30&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
If some parameters are not assigned, the default value is used. You can see the default values at the address:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=Image.I0.Appearance&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
You can change the default values. For this it is necessary to specify the parameter action=update. For example:&lt;br /&gt;
   &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Image.I0.Appearance.Resolution=512x384&amp;amp;Image.I0.Appearance.Rotation=180&amp;amp;ColorEnabled=no&amp;amp;Image.I0.Appearance.Compression=50&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.ColorLevel=60&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
==Video stream==&lt;br /&gt;
&lt;br /&gt;
The cameras can be used to receive a continuous video stream. This stream can be transferred by two protocols - HTTP and RTP.&lt;br /&gt;
   &lt;br /&gt;
===HTTP===&lt;br /&gt;
====Jpeg====&lt;br /&gt;
The stream is a sequence of jpeg-files, separated by a special marking line. This transfer format is named Multipart Jpeg or MPJPG. For receiving a stream in this format you can use the following path:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/mjpg/video.mjpg&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
As with static images, you can also assign parameters for the video stream. For this you can use the following path:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/mjpg/video.cgi?param1=xxx&amp;amp;param2=yyy&amp;amp;.....&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Apart from the parameters, enumerated above, such as '''resolution, compression, colorlevel, color, rotation''', you can also assign:&lt;br /&gt;
    &lt;br /&gt;
'''duration=&amp;lt;int&amp;gt;'''    Specifies for how many seconds the video will be generated and pushed to the client. 0 = unlimited.&lt;br /&gt;
    &lt;br /&gt;
'''nbrofframes=&amp;lt;int&amp;gt;'''    Specifies how many frames the server will generate and push. 0 = unlimited.&lt;br /&gt;
    &lt;br /&gt;
'''fps=&amp;lt;int&amp;gt;'''    Using fps it is possible to specify the frame rate from the server. 0 = unlimited.&lt;br /&gt;
    &lt;br /&gt;
By default all these parameters are assigned to 0. You can change the default settings, for example, in this way:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Image.I0.Stream.Duration=100&amp;amp;Image.I0.Stream.FPS=5&amp;amp;Image.I0.Stream.NbrOfFrames=1000&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apart from the standard parameters, enumerated above, there are extensions, which allow you to use the Elphel cameras more flexibly. More detailed information about these extensions can be found at [[Video API Extensions]].&lt;br /&gt;
   &lt;br /&gt;
On the page [[Video API And Client Applications]] you can find some information about players, which can play the MPJPG video stream.&lt;br /&gt;
&lt;br /&gt;
====Theora====&lt;br /&gt;
&lt;br /&gt;
     &lt;br /&gt;
===RTP===&lt;br /&gt;
====Video Parameters====&lt;br /&gt;
Note that due to obscure reasons, parameters set via&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;root.ImageSource.I0.Sensor...=...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will not take effect for RTP streams until the camera is restarted, although they will take effect immediately for videos streamed directly via HTTP. &lt;br /&gt;
&lt;br /&gt;
You can access the list of parameters used for RTP streaming, by accessing the following URL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=ImageSource.I0.E_CurrentState&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Jpeg====&lt;br /&gt;
Each jpeg-file is divided into many files with a size less than 1500 bytes which are transferred by RTP/UDP protocol through the network. In this case the data transmission is substantially accelerated, but the reliability of transfer falls, which can overload some networks and lead to the loss of a certain amount of video data.&lt;br /&gt;
&lt;br /&gt;
On the page [[Video API And Client Applications]] you can find information about players, which can play the RTP/JPEG stream.&lt;br /&gt;
&lt;br /&gt;
=====Multicast=====&lt;br /&gt;
To obtain a video stream using RTP/Multicast it is sufficient to set the special variable:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Network.RTP.R0.MulticastAlways=yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The video stream will be generated with the default settings of variables for Multicast address, destination port and TTL. These variables can be changed by the following way:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Network.RTP.R0.VideoAddress=224.21.23.44&amp;amp;Network.RTP.R0.VideoPort=22222&amp;amp;Network.RTP.R0.TTL=90&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
======SDP======&lt;br /&gt;
This video stream can be received, recorded or played back by MPlayer, QuickTime, vic (from the mush package). For this it is necessary to obtain the SDP-file from camera:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/mjpg/media.sdp&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The saved file should be transferred to your preferred player. For example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;mplayer sdp://media.sdp&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
======RTSP======&lt;br /&gt;
The original Axis Video API specification does not support RTSP in Multicast mode. In the Elphel cameras this possibility has been added as a protocol extension.&lt;br /&gt;
&lt;br /&gt;
=====Unicast=====&lt;br /&gt;
======RTSP======&lt;br /&gt;
&lt;br /&gt;
====Theora====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Obtaining information about system functioning ==&lt;br /&gt;
You can obtain information about the system at the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/systemlog.cgi&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
or more detailed information at the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/serverreport.cgi&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Date and Time ==&lt;br /&gt;
=== Retrieving the Date and Time ===&lt;br /&gt;
To see the time which is stored inside the camera you can use the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/date.cgi?action=get&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== Setting Date and Time ===&lt;br /&gt;
For setting the date and time you must use the following parameters:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|action ||-|| set ||&lt;br /&gt;
|-&lt;br /&gt;
|year ||-|| 1970 - 2031 || Current year.&lt;br /&gt;
|-&lt;br /&gt;
|month ||-|| 1 - 12 || Current month.&lt;br /&gt;
|-&lt;br /&gt;
|day ||-|| 1 - 31 || Current day.&lt;br /&gt;
|-&lt;br /&gt;
|hour ||-|| 0 - 23 || Current hour.&lt;br /&gt;
|-&lt;br /&gt;
|minute ||-|| 0 - 59 || Current minute.&lt;br /&gt;
|-&lt;br /&gt;
|second ||-|| 0 - 59 || Current second.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/date.cgi?action=set&amp;amp;year=2006&amp;amp;month=4&amp;amp;day=15&amp;amp;hour=14&amp;amp;minute=20&amp;amp;second=40&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== User administration ==&lt;br /&gt;
The Video API allows:&lt;br /&gt;
*registration and deleting of users&lt;br /&gt;
*changing user passwords &lt;br /&gt;
*adding users to special groups&lt;br /&gt;
=== Deleting a user ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=remove&amp;amp;user=joe&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== Creating a new user ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=joe&amp;amp;pwd=PASSWD&amp;amp;grp=axuser&amp;amp;sgrp=axview&amp;amp;comment=JOE&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Creating a new user is slightly different for Elphel and Axis cameras. All created users which will have the access to camera through Video API MUST belong to the '''axoper''' group. Also these users must belong to one or more secondary groups:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''axview''' ||-|| access is permitted to scripts which are placed in directory /axis-cgi/view/&lt;br /&gt;
|-&lt;br /&gt;
|'''axoper''' ||-|| access is permitted to scripts which are placed in directory /axis-cgi/operator/&lt;br /&gt;
|-&lt;br /&gt;
|'''axadmin''' ||-|| access is permitted to scripts which are placed in directory /axis-cgi/admin/&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
At the same time it is necessary to pay special attention, because users who have Administrator rights must be entered into all three groups, users who have Operator rights must be entered into the axoper and axview groups, users who have Unprivileged user rights must be entered into the axview group only.&lt;br /&gt;
Creating of three users with different rights, for example:&lt;br /&gt;
*Administrator:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=administrator&amp;amp;pwd=foo&amp;amp;grp=axuser&amp;amp;sgrp=axadmin:axoper:axview&amp;amp;comment=Administrator&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*Operator:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=operator&amp;amp;pwd=foo&amp;amp;grp=axuser&amp;amp;sgrp=axoper:axview&amp;amp;comment=Operator&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Unprivileged user:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=administrator&amp;amp;pwd=foo&amp;amp;grp=axuser&amp;amp;sgrp=axview&amp;amp;comment=Viewer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Password changing ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=update&amp;amp;user=joe&amp;amp;pwd=pass&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changing the access rights for secondary group ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=update&amp;amp;user=joe&amp;amp;sgrp=axview:axoper&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rebooting the camera ==&lt;br /&gt;
For camera rebooting, you should use the following address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/var/axis-cgi/admin/restart.cgi&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exposure control ==&lt;br /&gt;
The Elphel cameras support exposure control with the standard and advanced interface. You can read about Advanced Settings on the page [[Video_API_Extensions]]&lt;br /&gt;
&lt;br /&gt;
=== Autoexposure ===&lt;br /&gt;
To enable autoexposure you can use the following command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.Exposure=auto&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Autoexposure parameters ====&lt;br /&gt;
It is possible to assign the area for autoexposure calculation. You can do this using the following command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.ExposureWindow=full&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The ExposureWindow can have the values '''full''', '''center''', '''lower''', '''upper''', '''right''' and '''left'''.&lt;br /&gt;
&lt;br /&gt;
Also it possible set a maximum exposure time (number of micro seconds) :&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;root.ImageSource.I0.Sensor.MaxExposureTime=150000&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manual control of exposure ===&lt;br /&gt;
To enable manual control of exposure you can use the following command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.Exposure=manual&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also you can set the time an image is exposed (0.1 msec step):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;root.ImageSource.I0.Sensor.Shutter=50&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''For example''' Shutter=50 means 5000 microseconds or 5 miliseconds.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
If your attempts to access images fail with &amp;lt;tt&amp;gt;500 Server Error&amp;lt;/tt&amp;gt;, you may have to explicitely [[Change API|enable the Video API]].&lt;/div&gt;</summary>
		<author><name>Dvdkhlng</name></author>	</entry>

	<entry>
		<id>https://wiki.elphel.com/index.php?title=Video_API_legacy&amp;diff=2817</id>
		<title>Video API legacy</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=Video_API_legacy&amp;diff=2817"/>
				<updated>2006-12-01T13:00:58Z</updated>
		
		<summary type="html">&lt;p&gt;Dvdkhlng: Added note about changes by param.cgi being delayed for RTP streams&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{en|ru=First_Acquaintance_With_Video_API.Ru|cn=Video_API_Extensions.cn}}&lt;br /&gt;
&lt;br /&gt;
Anyone who has even the slightest skill at writing HTML pages can use the Axis Video API. And with additional software installed, it is possible to create a powerful video observation system with the capabilities of recording video archives, journalizing, viewing of archives, etc. Note [[Change API]] an how to enable the Video API.&lt;br /&gt;
&lt;br /&gt;
== Information about image dimensions ==&lt;br /&gt;
Some default parameters and some which are transferred when the image is obtained can change the image dimensions. For example parameters such as '''resolution, e_dcm_hor, e_dcm_vert, e_woi_width, e_woi_height, e_woi_left, e_woi_top'''. Sometimes a client application needs to know about the dimensions of the received image in advance (for example, for reserving a necessary area in a browser page or application window). You can obtain this information at the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/var/axis-cgi/view/imagesize.cgi?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
It is possible to transfer with this script any of the parameters which are supported by image.cgi and video.cgi. For example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/var/axis-cgi/view/imagesize.cgi?e_dcm_vert=2&amp;amp;e_dcm_hor=2&amp;amp;e_woi_width=1800&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The server response is:&lt;br /&gt;
&lt;br /&gt;
 image width  = 896&lt;br /&gt;
 image height = 768&lt;br /&gt;
&lt;br /&gt;
== Static images ==&lt;br /&gt;
To retrieve an image from the camera it is enough to type the following path in the browser's address field:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/jpg/image.jpg &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note''' 192.168.0.9 - this is the default camera IP-address. If you have changed the camera IP-address, please, type your variant.&lt;br /&gt;
&lt;br /&gt;
It is also possible to ask the camera to send the image with a certain set of parameters. The path which can be used for this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/jpg/image.cgi?param1=xxx&amp;amp;param2=yyy&amp;amp;.....&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
See the list of accessible parameters below.&lt;br /&gt;
 &lt;br /&gt;
'''resolution'''=&amp;lt;string&amp;gt;    Specify the resolution of the returned image, for example 800x600.  Product-dependent.  You can check what values are supported by your camera using the address:  ''&amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=Properties.Image.Resolution&amp;lt;/nowiki&amp;gt;''&lt;br /&gt;
 &lt;br /&gt;
'''compression'''=&amp;lt;int&amp;gt;    Adjusts the compression level of the image. Higher values correspond to higher compression, i.e. lower quality and smaller image size.  It can take a value from 0 to 100. In many cases 30 is optimal.&lt;br /&gt;
 &lt;br /&gt;
'''colorlevel'''=&amp;lt;int&amp;gt;    Sets level of color or grey-scale. It can have value from 0 to 100.  0 = grey-scale, 100 = full color.&lt;br /&gt;
 &lt;br /&gt;
'''color'''=&amp;lt;int&amp;gt;    Enables/disables color.  It can have value 0 or 1.  0 = black and white, 1 = color.&lt;br /&gt;
 &lt;br /&gt;
'''rotation'''=&amp;lt;int&amp;gt;    Rotates the image clockwise.  Product-dependent.  You can check what values are supported by your camera at the address:  ''&amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=Properties.Image.Rotation&amp;lt;/nowiki&amp;gt;''&lt;br /&gt;
 &lt;br /&gt;
Apart from the standard parameters, enumerated above, there are some extensions, which make it possible to use the Elphel cameras more flexibly. You can read more detailed information about these extensions at [[Video API Extensions]].&lt;br /&gt;
&lt;br /&gt;
Example of obtaining an image with the assigned set of parameters:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/jpg/image.cgi?resolution=1024x768&amp;amp;colorlrvel=45&amp;amp;compression=30&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
If some parameters are not assigned, the default value is used. You can see the default values at the address:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=Image.I0.Appearance&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
You can change the default values. For this it is necessary to specify the parameter action=update. For example:&lt;br /&gt;
   &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Image.I0.Appearance.Resolution=512x384&amp;amp;Image.I0.Appearance.Rotation=180&amp;amp;ColorEnabled=no&amp;amp;Image.I0.Appearance.Compression=50&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.ColorLevel=60&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
==Video stream==&lt;br /&gt;
&lt;br /&gt;
The cameras can be used to receive a continuous video stream. This stream can be transferred by two protocols - HTTP and RTP.&lt;br /&gt;
   &lt;br /&gt;
===HTTP===&lt;br /&gt;
====Jpeg====&lt;br /&gt;
The stream is a sequence of jpeg-files, separated by a special marking line. This transfer format is named Multipart Jpeg or MPJPG. For receiving a stream in this format you can use the following path:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/mjpg/video.mjpg&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
As with static images, you can also assign parameters for the video stream. For this you can use the following path:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/mjpg/video.cgi?param1=xxx&amp;amp;param2=yyy&amp;amp;.....&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Apart from the parameters, enumerated above, such as '''resolution, compression, colorlevel, color, rotation''', you can also assign:&lt;br /&gt;
    &lt;br /&gt;
'''duration=&amp;lt;int&amp;gt;'''    Specifies for how many seconds the video will be generated and pushed to the client. 0 = unlimited.&lt;br /&gt;
    &lt;br /&gt;
'''nbrofframes=&amp;lt;int&amp;gt;'''    Specifies how many frames the server will generate and push. 0 = unlimited.&lt;br /&gt;
    &lt;br /&gt;
'''fps=&amp;lt;int&amp;gt;'''    Using fps it is possible to specify the frame rate from the server. 0 = unlimited.&lt;br /&gt;
    &lt;br /&gt;
By default all these parameters are assigned to 0. You can change the default settings, for example, in this way:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Image.I0.Stream.Duration=100&amp;amp;Image.I0.Stream.FPS=5&amp;amp;Image.I0.Stream.NbrOfFrames=1000&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apart from the standard parameters, enumerated above, there are extensions, which allow you to use the Elphel cameras more flexibly. More detailed information about these extensions can be found at [[Video API Extensions]].&lt;br /&gt;
   &lt;br /&gt;
On the page [[Video API And Client Applications]] you can find some information about players, which can play the MPJPG video stream.&lt;br /&gt;
&lt;br /&gt;
====Theora====&lt;br /&gt;
&lt;br /&gt;
     &lt;br /&gt;
===RTP===&lt;br /&gt;
====Video Parameters====&lt;br /&gt;
Note that due to obscure reasons, parameters set via&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;root.ImageSource.I0.Sensor...=...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will not take effect for RTP streams until the camera is restarted, although they will take effect immediately for videos are streamed directly via HTTP. &lt;br /&gt;
&lt;br /&gt;
You can access the list of parameters used for RTP streaming, by accessing the following URL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=ImageSource.I0.E_CurrentState&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Jpeg====&lt;br /&gt;
Each jpeg-file is divided into many files with a size less than 1500 bytes which are transferred by RTP/UDP protocol through the network. In this case the data transmission is substantially accelerated, but the reliability of transfer falls, which can overload some networks and lead to the loss of a certain amount of video data.&lt;br /&gt;
&lt;br /&gt;
On the page [[Video API And Client Applications]] you can find information about players, which can play the RTP/JPEG stream.&lt;br /&gt;
&lt;br /&gt;
=====Multicast=====&lt;br /&gt;
To obtain a video stream using RTP/Multicast it is sufficient to set the special variable:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Network.RTP.R0.MulticastAlways=yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The video stream will be generated with the default settings of variables for Multicast address, destination port and TTL. These variables can be changed by the following way:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Network.RTP.R0.VideoAddress=224.21.23.44&amp;amp;Network.RTP.R0.VideoPort=22222&amp;amp;Network.RTP.R0.TTL=90&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
======SDP======&lt;br /&gt;
This video stream can be received, recorded or played back by MPlayer, QuickTime, vic (from the mush package). For this it is necessary to obtain the SDP-file from camera:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/mjpg/media.sdp&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The saved file should be transferred to your preferred player. For example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;mplayer sdp://media.sdp&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
======RTSP======&lt;br /&gt;
The original Axis Video API specification does not support RTSP in Multicast mode. In the Elphel cameras this possibility has been added as a protocol extension.&lt;br /&gt;
&lt;br /&gt;
=====Unicast=====&lt;br /&gt;
======RTSP======&lt;br /&gt;
&lt;br /&gt;
====Theora====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Obtaining information about system functioning ==&lt;br /&gt;
You can obtain information about the system at the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/systemlog.cgi&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
or more detailed information at the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/serverreport.cgi&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Date and Time ==&lt;br /&gt;
=== Retrieving the Date and Time ===&lt;br /&gt;
To see the time which is stored inside the camera you can use the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/date.cgi?action=get&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== Setting Date and Time ===&lt;br /&gt;
For setting the date and time you must use the following parameters:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|action ||-|| set ||&lt;br /&gt;
|-&lt;br /&gt;
|year ||-|| 1970 - 2031 || Current year.&lt;br /&gt;
|-&lt;br /&gt;
|month ||-|| 1 - 12 || Current month.&lt;br /&gt;
|-&lt;br /&gt;
|day ||-|| 1 - 31 || Current day.&lt;br /&gt;
|-&lt;br /&gt;
|hour ||-|| 0 - 23 || Current hour.&lt;br /&gt;
|-&lt;br /&gt;
|minute ||-|| 0 - 59 || Current minute.&lt;br /&gt;
|-&lt;br /&gt;
|second ||-|| 0 - 59 || Current second.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/date.cgi?action=set&amp;amp;year=2006&amp;amp;month=4&amp;amp;day=15&amp;amp;hour=14&amp;amp;minute=20&amp;amp;second=40&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== User administration ==&lt;br /&gt;
The Video API allows:&lt;br /&gt;
*registration and deleting of users&lt;br /&gt;
*changing user passwords &lt;br /&gt;
*adding users to special groups&lt;br /&gt;
=== Deleting a user ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=remove&amp;amp;user=joe&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== Creating a new user ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=joe&amp;amp;pwd=PASSWD&amp;amp;grp=axuser&amp;amp;sgrp=axview&amp;amp;comment=JOE&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Creating a new user is slightly different for Elphel and Axis cameras. All created users which will have the access to camera through Video API MUST belong to the '''axoper''' group. Also these users must belong to one or more secondary groups:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''axview''' ||-|| access is permitted to scripts which are placed in directory /axis-cgi/view/&lt;br /&gt;
|-&lt;br /&gt;
|'''axoper''' ||-|| access is permitted to scripts which are placed in directory /axis-cgi/operator/&lt;br /&gt;
|-&lt;br /&gt;
|'''axadmin''' ||-|| access is permitted to scripts which are placed in directory /axis-cgi/admin/&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
At the same time it is necessary to pay special attention, because users who have Administrator rights must be entered into all three groups, users who have Operator rights must be entered into the axoper and axview groups, users who have Unprivileged user rights must be entered into the axview group only.&lt;br /&gt;
Creating of three users with different rights, for example:&lt;br /&gt;
*Administrator:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=administrator&amp;amp;pwd=foo&amp;amp;grp=axuser&amp;amp;sgrp=axadmin:axoper:axview&amp;amp;comment=Administrator&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*Operator:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=operator&amp;amp;pwd=foo&amp;amp;grp=axuser&amp;amp;sgrp=axoper:axview&amp;amp;comment=Operator&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Unprivileged user:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=administrator&amp;amp;pwd=foo&amp;amp;grp=axuser&amp;amp;sgrp=axview&amp;amp;comment=Viewer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Password changing ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=update&amp;amp;user=joe&amp;amp;pwd=pass&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changing the access rights for secondary group ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=update&amp;amp;user=joe&amp;amp;sgrp=axview:axoper&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rebooting the camera ==&lt;br /&gt;
For camera rebooting, you should use the following address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/var/axis-cgi/admin/restart.cgi&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exposure control ==&lt;br /&gt;
The Elphel cameras support exposure control with the standard and advanced interface. You can read about Advanced Settings on the page [[Video_API_Extensions]]&lt;br /&gt;
&lt;br /&gt;
=== Autoexposure ===&lt;br /&gt;
To enable autoexposure you can use the following command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.Exposure=auto&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Autoexposure parameters ====&lt;br /&gt;
It is possible to assign the area for autoexposure calculation. You can do this using the following command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.ExposureWindow=full&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The ExposureWindow can have the values '''full''', '''center''', '''lower''', '''upper''', '''right''' and '''left'''.&lt;br /&gt;
&lt;br /&gt;
Also it possible set a maximum exposure time (number of micro seconds) :&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;root.ImageSource.I0.Sensor.MaxExposureTime=150000&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manual control of exposure ===&lt;br /&gt;
To enable manual control of exposure you can use the following command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.Exposure=manual&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also you can set the time an image is exposed (0.1 msec step):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;root.ImageSource.I0.Sensor.Shutter=50&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''For example''' Shutter=50 means 5000 microseconds or 5 miliseconds.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
If your attempts to access images fail with &amp;lt;tt&amp;gt;500 Server Error&amp;lt;/tt&amp;gt;, you may have to explicitely [[Change API|enable the Video API]].&lt;/div&gt;</summary>
		<author><name>Dvdkhlng</name></author>	</entry>

	<entry>
		<id>https://wiki.elphel.com/index.php?title=Video_API_Extensions_legacy&amp;diff=2816</id>
		<title>Video API Extensions legacy</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=Video_API_Extensions_legacy&amp;diff=2816"/>
				<updated>2006-12-01T11:13:36Z</updated>
		
		<summary type="html">&lt;p&gt;Dvdkhlng: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{en|ru=Video_API_Extensions.Ru|cn=Video_API_Extensions.cn}}&lt;br /&gt;
&lt;br /&gt;
The current implementation of the [[Video API]] has a number of features which are absent from the [[AxisAPI|standard Axis Video API]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enabling extensions ==&lt;br /&gt;
By default the Video API extensions are blocked. To unblock them it is necessary to set a corresponding variable:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ElphelExtensions.Enabled=yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Obtaining static and dynamic images ==&lt;br /&gt;
The standard interface for obtaining static and dynamic images in JPEG and MJPG formats has a few additional parameters.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|e_dcm_hor ||-|| horizontal decimation (resolution/image size reduction)&lt;br /&gt;
|-&lt;br /&gt;
|e_dcm_vert ||-|| vertical decimation (resolution/image size reduction)&lt;br /&gt;
|-&lt;br /&gt;
|e_bin_hor ||-|| horizontal binning (sensitivity for lower resolution)&lt;br /&gt;
|-&lt;br /&gt;
|e_bin_vert ||-|| vertical binning (sensitivity for lower resolution)&lt;br /&gt;
|-&lt;br /&gt;
|e_woi_width ||-|| sensor active window width (before decimation)&lt;br /&gt;
|-&lt;br /&gt;
|e_woi_height ||-|| sensor active window height (before decimation)&lt;br /&gt;
|-&lt;br /&gt;
|e_woi_left ||-|| sensor active window left margin (before decimation)&lt;br /&gt;
|-&lt;br /&gt;
|e_woi_top ||-|| sensor active window top margin (before decimation)&lt;br /&gt;
|-&lt;br /&gt;
|e_virt_width ||-|| virtual frame width&lt;br /&gt;
|-&lt;br /&gt;
|e_virt_height ||-|| virtual frame height&lt;br /&gt;
|-&lt;br /&gt;
|e_fliph ||-|| flip (mirror) image horizontally (uses in-sensor capabilities)&lt;br /&gt;
|-&lt;br /&gt;
|e_flipv ||-|| flip (mirror) image vertically (uses in-sensor capabilities)&lt;br /&gt;
|-&lt;br /&gt;
|e_exp_time ||-|| exposure time (0.1 msec step) 	&lt;br /&gt;
|-&lt;br /&gt;
|e_gamma ||-|| gamma correction value (%)&lt;br /&gt;
|-&lt;br /&gt;
|e_pixel_low ||-|| black level&lt;br /&gt;
|-&lt;br /&gt;
|e_pixel_high ||-|| white level&lt;br /&gt;
|-&lt;br /&gt;
|e_saturation_blue ||-|| color Saturation (%), Blue&lt;br /&gt;
|-&lt;br /&gt;
|e_saturation_red ||-|| color Saturation (%), Red&lt;br /&gt;
|-&lt;br /&gt;
|e_gain_r ||-|| analog gain RED (or mono)&lt;br /&gt;
|-&lt;br /&gt;
|e_gain_g ||-|| analog gain GREEN (or green in &amp;quot;red&amp;quot; line)&lt;br /&gt;
|-&lt;br /&gt;
|e_gain_b ||-|| analog gain BLUE&lt;br /&gt;
|-&lt;br /&gt;
|e_gain_gb ||-||  analog gain GREEN in &amp;quot;blue&amp;quot; line)&lt;br /&gt;
|-&lt;br /&gt;
|e_spec_kac_gga ||-|| Kodak KAC1310 analog gain Y (all colors)&lt;br /&gt;
|-&lt;br /&gt;
|e_spec_kac_ggb ||-|| Kodak KAC1310 analog gain ? (all colors)&lt;br /&gt;
|-&lt;br /&gt;
|e_spec_kac_ggm ||-|| Kodak KAC1310 mode&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
Example of obtaining a static image - use the following parameters:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/jpg/image.cgi?e_dcm_hor=2&amp;amp;e_dcm_vert=2&amp;amp;e_woi_width=1000&amp;amp;e_woi_height=900&amp;amp;e_woi_left=600&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of obtaining a dynamic image (MPJPG) - use the following parameters:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/mjpg/video.cgi?e_dcm_hor=2&amp;amp;e_dcm_vert=2&amp;amp;e_woi_width=1000&amp;amp;e_woi_height=900&amp;amp;e_woi_left=600&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can play this videostream, for example, by using MPlayer (for a more detailed description see [[Using Mplayer With Video API]]):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$mplayer -demuxer lavf &amp;quot;http://192.168.0.9/axis-cgi/mjpg/video.cgi?e_dcm_hor=2&amp;amp;e_dcm_vert=2&amp;amp;e_woi_width=1000&amp;amp;e_woi_height=900&amp;amp;e_woi_left=600&amp;amp;bogus.mjpg&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any of the parameters are not specified, the default values are used. You can find these values at the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=ImageSource.I0.Sensor&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
'''Note''': All API extensions have the prefix &amp;quot;E_&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can change the default value in the standard way for the Axis Video API. For example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.E_DcmHor=1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Obtaining information about the system status and default values ==&lt;br /&gt;
To obtain information about the system status variable you must use the following path:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=ImageSource.I0.E_CurrentState&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In an addition to the standard &amp;quot;'''rfc'''&amp;quot; format there is also the possibility to use XML format. You must use the '''responseformat''' parameter for this. For example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=ImageSource.I0.E_CurrentState&amp;amp;responseformat=xml&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
'''Note'''. If the responseformat is not specified or specified incorrectly, the default value of '''&amp;quot;rfc&amp;quot; will be used.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video streaming: RTP/MJPG and RTP/Theora ==&lt;br /&gt;
The Elphel cameras can transfer the video stream by RTP protocol.&lt;br /&gt;
=== RTP/MJPG ===&lt;br /&gt;
=== RTP/Theora ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exposure control ==&lt;br /&gt;
The Elphel cameras support the standard and advanced exposure control interface. For the standard settings see [[Video_API]]&lt;br /&gt;
&lt;br /&gt;
To enable autoexposure it is necessary to use the following command:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.Exposure=auto&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enabling the manual control of exposure:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.Exposure=manual&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obtaining the exposure state:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=ImageSource.I0.E_CurrentState.E_Exposure&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Window settings:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.E_Exposure.WinWidth=30&amp;amp;ImageSource.I0.Sensor.E_Exposure.WinHeight=45&amp;amp;ImageSource.I0.Sensor.E_Exposure.WinLeft=10&amp;amp;ImageSource.I0.Sensor.E_Exposure.WinTop=20&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exposure max.values:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.MaxExposureTime=3000&amp;amp;ImageSource.I0.Sensor.E_Exposure.OverMax=30&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dvdkhlng</name></author>	</entry>

	<entry>
		<id>https://wiki.elphel.com/index.php?title=Video_API_legacy&amp;diff=2815</id>
		<title>Video API legacy</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=Video_API_legacy&amp;diff=2815"/>
				<updated>2006-12-01T09:02:40Z</updated>
		
		<summary type="html">&lt;p&gt;Dvdkhlng: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{en|ru=First_Acquaintance_With_Video_API.Ru|cn=Video_API_Extensions.cn}}&lt;br /&gt;
&lt;br /&gt;
Anyone who has even the slightest skill at writing HTML pages can use the Axis Video API. And with additional software installed, it is possible to create a powerful video observation system with the capabilities of recording video archives, journalizing, viewing of archives, etc. Note [[Change API]] an how to enable the Video API.&lt;br /&gt;
&lt;br /&gt;
== Information about image dimensions ==&lt;br /&gt;
Some default parameters and some which are transferred when the image is obtained can change the image dimensions. For example parameters such as '''resolution, e_dcm_hor, e_dcm_vert, e_woi_width, e_woi_height, e_woi_left, e_woi_top'''. Sometimes a client application needs to know about the dimensions of the received image in advance (for example, for reserving a necessary area in a browser page or application window). You can obtain this information at the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/var/axis-cgi/view/imagesize.cgi?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
It is possible to transfer with this script any of the parameters which are supported by image.cgi and video.cgi. For example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/var/axis-cgi/view/imagesize.cgi?e_dcm_vert=2&amp;amp;e_dcm_hor=2&amp;amp;e_woi_width=1800&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The server response is:&lt;br /&gt;
&lt;br /&gt;
 image width  = 896&lt;br /&gt;
 image height = 768&lt;br /&gt;
&lt;br /&gt;
== Static images ==&lt;br /&gt;
To retrieve an image from the camera it is enough to type the following path in the browser's address field:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/jpg/image.jpg &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note''' 192.168.0.9 - this is the default camera IP-address. If you have changed the camera IP-address, please, type your variant.&lt;br /&gt;
&lt;br /&gt;
It is also possible to ask the camera to send the image with a certain set of parameters. The path which can be used for this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/jpg/image.cgi?param1=xxx&amp;amp;param2=yyy&amp;amp;.....&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
See the list of accessible parameters below.&lt;br /&gt;
 &lt;br /&gt;
'''resolution'''=&amp;lt;string&amp;gt;    Specify the resolution of the returned image, for example 800x600.  Product-dependent.  You can check what values are supported by your camera using the address:  ''&amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=Properties.Image.Resolution&amp;lt;/nowiki&amp;gt;''&lt;br /&gt;
 &lt;br /&gt;
'''compression'''=&amp;lt;int&amp;gt;    Adjusts the compression level of the image. Higher values correspond to higher compression, i.e. lower quality and smaller image size.  It can take a value from 0 to 100. In many cases 30 is optimal.&lt;br /&gt;
 &lt;br /&gt;
'''colorlevel'''=&amp;lt;int&amp;gt;    Sets level of color or grey-scale. It can have value from 0 to 100.  0 = grey-scale, 100 = full color.&lt;br /&gt;
 &lt;br /&gt;
'''color'''=&amp;lt;int&amp;gt;    Enables/disables color.  It can have value 0 or 1.  0 = black and white, 1 = color.&lt;br /&gt;
 &lt;br /&gt;
'''rotation'''=&amp;lt;int&amp;gt;    Rotates the image clockwise.  Product-dependent.  You can check what values are supported by your camera at the address:  ''&amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=Properties.Image.Rotation&amp;lt;/nowiki&amp;gt;''&lt;br /&gt;
 &lt;br /&gt;
Apart from the standard parameters, enumerated above, there are some extensions, which make it possible to use the Elphel cameras more flexibly. You can read more detailed information about these extensions at [[Video API Extensions]].&lt;br /&gt;
&lt;br /&gt;
Example of obtaining an image with the assigned set of parameters:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/jpg/image.cgi?resolution=1024x768&amp;amp;colorlrvel=45&amp;amp;compression=30&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
If some parameters are not assigned, the default value is used. You can see the default values at the address:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=Image.I0.Appearance&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
You can change the default values. For this it is necessary to specify the parameter action=update. For example:&lt;br /&gt;
   &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Image.I0.Appearance.Resolution=512x384&amp;amp;Image.I0.Appearance.Rotation=180&amp;amp;ColorEnabled=no&amp;amp;Image.I0.Appearance.Compression=50&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.ColorLevel=60&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
==Video stream==&lt;br /&gt;
&lt;br /&gt;
The cameras can be used to receive a continuous video stream. This stream can be transferred by two protocols - HTTP and RTP.&lt;br /&gt;
   &lt;br /&gt;
===HTTP===&lt;br /&gt;
====Jpeg====&lt;br /&gt;
The stream is a sequence of jpeg-files, separated by a special marking line. This transfer format is named Multipart Jpeg or MPJPG. For receiving a stream in this format you can use the following path:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/mjpg/video.mjpg&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
As with static images, you can also assign parameters for the video stream. For this you can use the following path:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/mjpg/video.cgi?param1=xxx&amp;amp;param2=yyy&amp;amp;.....&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Apart from the parameters, enumerated above, such as '''resolution, compression, colorlevel, color, rotation''', you can also assign:&lt;br /&gt;
    &lt;br /&gt;
'''duration=&amp;lt;int&amp;gt;'''    Specifies for how many seconds the video will be generated and pushed to the client. 0 = unlimited.&lt;br /&gt;
    &lt;br /&gt;
'''nbrofframes=&amp;lt;int&amp;gt;'''    Specifies how many frames the server will generate and push. 0 = unlimited.&lt;br /&gt;
    &lt;br /&gt;
'''fps=&amp;lt;int&amp;gt;'''    Using fps it is possible to specify the frame rate from the server. 0 = unlimited.&lt;br /&gt;
    &lt;br /&gt;
By default all these parameters are assigned to 0. You can change the default settings, for example, in this way:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Image.I0.Stream.Duration=100&amp;amp;Image.I0.Stream.FPS=5&amp;amp;Image.I0.Stream.NbrOfFrames=1000&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apart from the standard parameters, enumerated above, there are extensions, which allow you to use the Elphel cameras more flexibly. More detailed information about these extensions can be found at [[Video API Extensions]].&lt;br /&gt;
   &lt;br /&gt;
On the page [[Video API And Client Applications]] you can find some information about players, which can play the MPJPG video stream.&lt;br /&gt;
&lt;br /&gt;
====Theora====&lt;br /&gt;
&lt;br /&gt;
     &lt;br /&gt;
===RTP===&lt;br /&gt;
====Jpeg====&lt;br /&gt;
Each jpeg-file is divided into many files with a size less than 1500 bytes which are transferred by RTP/UDP protocol through the network. In this case the data transmission is substantially accelerated, but the reliability of transfer falls, which can overload some networks and lead to the loss of a certain amount of video data.&lt;br /&gt;
&lt;br /&gt;
On the page [[Video API And Client Applications]] you can find information about players, which can play the RTP/JPEG stream.&lt;br /&gt;
&lt;br /&gt;
=====Multicast=====&lt;br /&gt;
To obtain a video stream using RTP/Multicast it is sufficient to set the special variable:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Network.RTP.R0.MulticastAlways=yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The video stream will be generated with the default settings of variables for Multicast address, destination port and TTL. These variables can be changed by the following way:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Network.RTP.R0.VideoAddress=224.21.23.44&amp;amp;Network.RTP.R0.VideoPort=22222&amp;amp;Network.RTP.R0.TTL=90&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
======SDP======&lt;br /&gt;
This video stream can be received, recorded or played back by MPlayer, QuickTime, vic (from the mush package). For this it is necessary to obtain the SDP-file from camera:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/mjpg/media.sdp&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The saved file should be transferred to your preferred player. For example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;mplayer sdp://media.sdp&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
======RTSP======&lt;br /&gt;
The original Axis Video API specification does not support RTSP in Multicast mode. In the Elphel cameras this possibility has been added as a protocol extension.&lt;br /&gt;
&lt;br /&gt;
=====Unicast=====&lt;br /&gt;
======RTSP======&lt;br /&gt;
&lt;br /&gt;
====Theora====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Obtaining information about system functioning ==&lt;br /&gt;
You can obtain information about the system at the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/systemlog.cgi&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
or more detailed information at the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/serverreport.cgi&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Date and Time ==&lt;br /&gt;
=== Retrieving the Date and Time ===&lt;br /&gt;
To see the time which is stored inside the camera you can use the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/date.cgi?action=get&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== Setting Date and Time ===&lt;br /&gt;
For setting the date and time you must use the following parameters:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|action ||-|| set ||&lt;br /&gt;
|-&lt;br /&gt;
|year ||-|| 1970 - 2031 || Current year.&lt;br /&gt;
|-&lt;br /&gt;
|month ||-|| 1 - 12 || Current month.&lt;br /&gt;
|-&lt;br /&gt;
|day ||-|| 1 - 31 || Current day.&lt;br /&gt;
|-&lt;br /&gt;
|hour ||-|| 0 - 23 || Current hour.&lt;br /&gt;
|-&lt;br /&gt;
|minute ||-|| 0 - 59 || Current minute.&lt;br /&gt;
|-&lt;br /&gt;
|second ||-|| 0 - 59 || Current second.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/date.cgi?action=set&amp;amp;year=2006&amp;amp;month=4&amp;amp;day=15&amp;amp;hour=14&amp;amp;minute=20&amp;amp;second=40&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== User administration ==&lt;br /&gt;
The Video API allows:&lt;br /&gt;
*registration and deleting of users&lt;br /&gt;
*changing user passwords &lt;br /&gt;
*adding users to special groups&lt;br /&gt;
=== Deleting a user ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=remove&amp;amp;user=joe&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== Creating a new user ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=joe&amp;amp;pwd=PASSWD&amp;amp;grp=axuser&amp;amp;sgrp=axview&amp;amp;comment=JOE&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Creating a new user is slightly different for Elphel and Axis cameras. All created users which will have the access to camera through Video API MUST belong to the '''axoper''' group. Also these users must belong to one or more secondary groups:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''axview''' ||-|| access is permitted to scripts which are placed in directory /axis-cgi/view/&lt;br /&gt;
|-&lt;br /&gt;
|'''axoper''' ||-|| access is permitted to scripts which are placed in directory /axis-cgi/operator/&lt;br /&gt;
|-&lt;br /&gt;
|'''axadmin''' ||-|| access is permitted to scripts which are placed in directory /axis-cgi/admin/&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
At the same time it is necessary to pay special attention, because users who have Administrator rights must be entered into all three groups, users who have Operator rights must be entered into the axoper and axview groups, users who have Unprivileged user rights must be entered into the axview group only.&lt;br /&gt;
Creating of three users with different rights, for example:&lt;br /&gt;
*Administrator:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=administrator&amp;amp;pwd=foo&amp;amp;grp=axuser&amp;amp;sgrp=axadmin:axoper:axview&amp;amp;comment=Administrator&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*Operator:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=operator&amp;amp;pwd=foo&amp;amp;grp=axuser&amp;amp;sgrp=axoper:axview&amp;amp;comment=Operator&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Unprivileged user:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=administrator&amp;amp;pwd=foo&amp;amp;grp=axuser&amp;amp;sgrp=axview&amp;amp;comment=Viewer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Password changing ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=update&amp;amp;user=joe&amp;amp;pwd=pass&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changing the access rights for secondary group ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=update&amp;amp;user=joe&amp;amp;sgrp=axview:axoper&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rebooting the camera ==&lt;br /&gt;
For camera rebooting, you should use the following address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/var/axis-cgi/admin/restart.cgi&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exposure control ==&lt;br /&gt;
The Elphel cameras support exposure control with the standard and advanced interface. You can read about Advanced Settings on the page [[Video_API_Extensions]]&lt;br /&gt;
&lt;br /&gt;
=== Autoexposure ===&lt;br /&gt;
To enable autoexposure you can use the following command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.Exposure=auto&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Autoexposure parameters ====&lt;br /&gt;
It is possible to assign the area for autoexposure calculation. You can do this using the following command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.ExposureWindow=full&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The ExposureWindow can have the values '''full''', '''center''', '''lower''', '''upper''', '''right''' and '''left'''.&lt;br /&gt;
&lt;br /&gt;
Also it possible set a maximum exposure time (number of micro seconds) :&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;root.ImageSource.I0.Sensor.MaxExposureTime=150000&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manual control of exposure ===&lt;br /&gt;
To enable manual control of exposure you can use the following command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.Exposure=manual&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also you can set the time an image is exposed (0.1 msec step):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;root.ImageSource.I0.Sensor.Shutter=50&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''For example''' Shutter=50 means 5000 microseconds or 5 miliseconds.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
If your attempts to access images fail with &amp;lt;tt&amp;gt;500 Server Error&amp;lt;/tt&amp;gt;, you may have to explicitely [[Change API|enable the Video API]].&lt;/div&gt;</summary>
		<author><name>Dvdkhlng</name></author>	</entry>

	<entry>
		<id>https://wiki.elphel.com/index.php?title=Video_API_legacy&amp;diff=2814</id>
		<title>Video API legacy</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=Video_API_legacy&amp;diff=2814"/>
				<updated>2006-12-01T09:01:38Z</updated>
		
		<summary type="html">&lt;p&gt;Dvdkhlng: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{en|ru=First_Acquaintance_With_Video_API.Ru|cn=Video_API_Extensions.cn}}&lt;br /&gt;
&lt;br /&gt;
Anyone who has even the slightest skill at writing HTML pages can use the Axis Video API. And with additional software installed, it is possible to create a powerful video observation system with the capabilities of recording video archives, journalizing, viewing of archives, etc. Note [[Change API]] an how to enable the Video API.&lt;br /&gt;
&lt;br /&gt;
== Information about image dimensions ==&lt;br /&gt;
Some default parameters and some which are transferred when the image is obtained can change the image dimensions. For example parameters such as '''resolution, e_dcm_hor, e_dcm_vert, e_woi_width, e_woi_height, e_woi_left, e_woi_top'''. Sometimes a client application needs to know about the dimensions of the received image in advance (for example, for reserving a necessary area in a browser page or application window). You can obtain this information at the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/var/axis-cgi/view/imagesize.cgi?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
It is possible to transfer with this script any of the parameters which are supported by image.cgi and video.cgi. For example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/var/axis-cgi/view/imagesize.cgi?e_dcm_vert=2&amp;amp;e_dcm_hor=2&amp;amp;e_woi_width=1800&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The server response is:&lt;br /&gt;
&lt;br /&gt;
 image width  = 896&lt;br /&gt;
 image height = 768&lt;br /&gt;
&lt;br /&gt;
== Static images ==&lt;br /&gt;
To retrieve an image from the camera it is enough to type the following path in the browser's address field:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/jpg/image.jpg &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note''' 192.168.0.9 - this is the default camera IP-address. If you have changed the camera IP-address, please, type your variant.&lt;br /&gt;
&lt;br /&gt;
It is also possible to ask the camera to send the image with a certain set of parameters. The path which can be used for this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/jpg/image.cgi?param1=xxx&amp;amp;param2=yyy&amp;amp;.....&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
See the list of accessible parameters below.&lt;br /&gt;
 &lt;br /&gt;
'''resolution'''=&amp;lt;string&amp;gt;    Specify the resolution of the returned image, for example 800x600.  Product-dependent.  You can check what values are supported by your camera using the address:  ''&amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=Properties.Image.Resolution&amp;lt;/nowiki&amp;gt;''&lt;br /&gt;
 &lt;br /&gt;
'''compression'''=&amp;lt;int&amp;gt;    Adjusts the compression level of the image. Higher values correspond to higher compression, i.e. lower quality and smaller image size.  It can take a value from 0 to 100. In many cases 30 is optimal.&lt;br /&gt;
 &lt;br /&gt;
'''colorlevel'''=&amp;lt;int&amp;gt;    Sets level of color or grey-scale. It can have value from 0 to 100.  0 = grey-scale, 100 = full color.&lt;br /&gt;
 &lt;br /&gt;
'''color'''=&amp;lt;int&amp;gt;    Enables/disables color.  It can have value 0 or 1.  0 = black and white, 1 = color.&lt;br /&gt;
 &lt;br /&gt;
'''rotation'''=&amp;lt;int&amp;gt;    Rotates the image clockwise.  Product-dependent.  You can check what values are supported by your camera at the address:  ''&amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=Properties.Image.Rotation&amp;lt;/nowiki&amp;gt;''&lt;br /&gt;
 &lt;br /&gt;
Apart from the standard parameters, enumerated above, there are some extensions, which make it possible to use the Elphel cameras more flexibly. You can read more detailed information about these extensions at [[Video API Extensions]].&lt;br /&gt;
&lt;br /&gt;
Example of obtaining an image with the assigned set of parameters:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/jpg/image.cgi?resolution=1024x768&amp;amp;colorlrvel=45&amp;amp;compression=30&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
If some parameters are not assigned, the default value is used. You can see the default values at the address:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&amp;amp;group=Image.I0.Appearance&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
You can change the default values. For this it is necessary to specify the parameter action=update. For example:&lt;br /&gt;
   &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Image.I0.Appearance.Resolution=512x384&amp;amp;Image.I0.Appearance.Rotation=180&amp;amp;ColorEnabled=no&amp;amp;Image.I0.Appearance.Compression=50&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.ColorLevel=60&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
==Video stream==&lt;br /&gt;
&lt;br /&gt;
The cameras can be used to receive a continuous video stream. This stream can be transferred by two protocols - HTTP and RTP.&lt;br /&gt;
   &lt;br /&gt;
===HTTP===&lt;br /&gt;
====Jpeg====&lt;br /&gt;
The stream is a sequence of jpeg-files, separated by a special marking line. This transfer format is named Multipart Jpeg or MPJPG. For receiving a stream in this format you can use the following path:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/mjpg/video.mjpg&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
As with static images, you can also assign parameters for the video stream. For this you can use the following path:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/mjpg/video.cgi?param1=xxx&amp;amp;param2=yyy&amp;amp;.....&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Apart from the parameters, enumerated above, such as '''resolution, compression, colorlevel, color, rotation''', you can also assign:&lt;br /&gt;
    &lt;br /&gt;
'''duration=&amp;lt;int&amp;gt;'''    Specifies for how many seconds the video will be generated and pushed to the client. 0 = unlimited.&lt;br /&gt;
    &lt;br /&gt;
'''nbrofframes=&amp;lt;int&amp;gt;'''    Specifies how many frames the server will generate and push. 0 = unlimited.&lt;br /&gt;
    &lt;br /&gt;
'''fps=&amp;lt;int&amp;gt;'''    Using fps it is possible to specify the frame rate from the server. 0 = unlimited.&lt;br /&gt;
    &lt;br /&gt;
By default all these parameters are assigned to 0. You can change the default settings, for example, in this way:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Image.I0.Stream.Duration=100&amp;amp;Image.I0.Stream.FPS=5&amp;amp;Image.I0.Stream.NbrOfFrames=1000&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apart from the standard parameters, enumerated above, there are extensions, which allow you to use the Elphel cameras more flexibly. More detailed information about these extensions can be found at [[Video API Extensions]].&lt;br /&gt;
   &lt;br /&gt;
On the page [[Video API And Client Applications]] you can find some information about players, which can play the MPJPG video stream.&lt;br /&gt;
&lt;br /&gt;
====Theora====&lt;br /&gt;
&lt;br /&gt;
     &lt;br /&gt;
===RTP===&lt;br /&gt;
====Jpeg====&lt;br /&gt;
Each jpeg-file is divided into many files with a size less than 1500 bytes which are transferred by RTP/UDP protocol through the network. In this case the data transmission is substantially accelerated, but the reliability of transfer falls, which can overload some networks and lead to the loss of a certain amount of video data.&lt;br /&gt;
&lt;br /&gt;
On the page [[Video API And Client Applications]] you can find information about players, which can play the RTP/JPEG stream.&lt;br /&gt;
&lt;br /&gt;
=====Multicast=====&lt;br /&gt;
To obtain a video stream using RTP/Multicast it is sufficient to set the special variable:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Network.RTP.R0.MulticastAlways=yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The video stream will be generated with the default settings of variables for Multicast address, destination port and TTL. These variables can be changed by the following way:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;Network.RTP.R0.VideoAddress=224.21.23.44&amp;amp;Network.RTP.R0.VideoPort=22222&amp;amp;Network.RTP.R0.TTL=90&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
======SDP======&lt;br /&gt;
This video stream can be received, recorded or played back by MPlayer, QuickTime, vic (from the mush package). For this it is necessary to obtain the SDP-file from camera:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/mjpg/media.sdp&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The saved file should be transferred to your preferred player. For example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;mplayer sdp://media.sdp&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
======RTSP======&lt;br /&gt;
The original Axis Video API specification does not support RTSP in Multicast mode. In the Elphel cameras this possibility has been added as a protocol extension.&lt;br /&gt;
&lt;br /&gt;
=====Unicast=====&lt;br /&gt;
======RTSP======&lt;br /&gt;
&lt;br /&gt;
====Theora====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Obtaining information about system functioning ==&lt;br /&gt;
You can obtain information about the system at the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/systemlog.cgi&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
or more detailed information at the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/serverreport.cgi&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Date and Time ==&lt;br /&gt;
=== Retrieving the Date and Time ===&lt;br /&gt;
To see the time which is stored inside the camera you can use the address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/date.cgi?action=get&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== Setting Date and Time ===&lt;br /&gt;
For setting the date and time you must use the following parameters:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|action ||-|| set ||&lt;br /&gt;
|-&lt;br /&gt;
|year ||-|| 1970 - 2031 || Current year.&lt;br /&gt;
|-&lt;br /&gt;
|month ||-|| 1 - 12 || Current month.&lt;br /&gt;
|-&lt;br /&gt;
|day ||-|| 1 - 31 || Current day.&lt;br /&gt;
|-&lt;br /&gt;
|hour ||-|| 0 - 23 || Current hour.&lt;br /&gt;
|-&lt;br /&gt;
|minute ||-|| 0 - 59 || Current minute.&lt;br /&gt;
|-&lt;br /&gt;
|second ||-|| 0 - 59 || Current second.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/date.cgi?action=set&amp;amp;year=2006&amp;amp;month=4&amp;amp;day=15&amp;amp;hour=14&amp;amp;minute=20&amp;amp;second=40&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== User administration ==&lt;br /&gt;
The Video API allows:&lt;br /&gt;
*registration and deleting of users&lt;br /&gt;
*changing user passwords &lt;br /&gt;
*adding users to special groups&lt;br /&gt;
=== Deleting a user ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=remove&amp;amp;user=joe&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== Creating a new user ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=joe&amp;amp;pwd=PASSWD&amp;amp;grp=axuser&amp;amp;sgrp=axview&amp;amp;comment=JOE&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Creating a new user is slightly different for Elphel and Axis cameras. All created users which will have the access to camera through Video API MUST belong to the '''axoper''' group. Also these users must belong to one or more secondary groups:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''axview''' ||-|| access is permitted to scripts which are placed in directory /axis-cgi/view/&lt;br /&gt;
|-&lt;br /&gt;
|'''axoper''' ||-|| access is permitted to scripts which are placed in directory /axis-cgi/operator/&lt;br /&gt;
|-&lt;br /&gt;
|'''axadmin''' ||-|| access is permitted to scripts which are placed in directory /axis-cgi/admin/&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
At the same time it is necessary to pay special attention, because users who have Administrator rights must be entered into all three groups, users who have Operator rights must be entered into the axoper and axview groups, users who have Unprivileged user rights must be entered into the axview group only.&lt;br /&gt;
Creating of three users with different rights, for example:&lt;br /&gt;
*Administrator:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=administrator&amp;amp;pwd=foo&amp;amp;grp=axuser&amp;amp;sgrp=axadmin:axoper:axview&amp;amp;comment=Administrator&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*Operator:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=operator&amp;amp;pwd=foo&amp;amp;grp=axuser&amp;amp;sgrp=axoper:axview&amp;amp;comment=Operator&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Unprivileged user:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&amp;amp;user=administrator&amp;amp;pwd=foo&amp;amp;grp=axuser&amp;amp;sgrp=axview&amp;amp;comment=Viewer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Password changing ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=update&amp;amp;user=joe&amp;amp;pwd=pass&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changing the access rights for secondary group ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=update&amp;amp;user=joe&amp;amp;sgrp=axview:axoper&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rebooting the camera ==&lt;br /&gt;
For camera rebooting, you should use the following address:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/var/axis-cgi/admin/restart.cgi&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exposure control ==&lt;br /&gt;
The Elphel cameras support exposure control with the standard and advanced interface. You can read about Advanced Settings on the page [[Video_API_Extensions]]&lt;br /&gt;
&lt;br /&gt;
=== Autoexposure ===&lt;br /&gt;
To enable autoexposure you can use the following command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.Exposure=auto&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Autoexposure parameters ====&lt;br /&gt;
It is possible to assign the area for autoexposure calculation. You can do this using the following command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.ExposureWindow=full&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The ExposureWindow can have the values '''full''', '''center''', '''lower''', '''upper''', '''right''' and '''left'''.&lt;br /&gt;
&lt;br /&gt;
Also it possible set a maximum exposure time (number of micro seconds) :&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;root.ImageSource.I0.Sensor.MaxExposureTime=150000&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manual control of exposure ===&lt;br /&gt;
To enable manual control of exposure you can use the following command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;ImageSource.I0.Sensor.Exposure=manual&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also you can set the time an image is exposed (0.1 msec step):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&amp;amp;root.ImageSource.I0.Sensor.Shutter=50&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''For example''' Shutter=50 means 5000 microseconds or 5 miliseconds.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If your attempts to access images fails with &amp;lt;tt&amp;gt;500 Server Error&amp;lt;/tt&amp;gt;, you may have to explicitely [[Change API|enable the Video API]].&lt;/div&gt;</summary>
		<author><name>Dvdkhlng</name></author>	</entry>

	<entry>
		<id>https://wiki.elphel.com/index.php?title=Change_API_legacy&amp;diff=2813</id>
		<title>Change API legacy</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=Change_API_legacy&amp;diff=2813"/>
				<updated>2006-12-01T08:57:59Z</updated>
		
		<summary type="html">&lt;p&gt;Dvdkhlng: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Elphel cameras have two different APIs. The old [[ccam.cgi]] API and the [[Video API]] which is a superset of the [[AxisAPI]]. By default (after flashing), Elphel cameras (at least the 333 model) work in the [[ccam.cgi]] API mode, which means that all attempts to acces the images using the [[Video API]] will come  back with a &amp;lt;tt&amp;gt;500 Server Error&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To check wich API is currently active for your camera, use the &amp;quot;chapi.cgi&amp;quot; CGI script:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://192.168.0.9/cgi-bin/admin/chapi.cgi?action=status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return and XML document such as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;camera&amp;gt;&lt;br /&gt;
&amp;lt;api&amp;gt;0&amp;lt;/api&amp;gt;&lt;br /&gt;
&amp;lt;/camera&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
meaning:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;&amp;lt;api&amp;gt;0&amp;lt;/api&amp;gt;&amp;lt;/tt&amp;gt; - [[ccam.api]]&lt;br /&gt;
* &amp;lt;tt&amp;gt;&amp;lt;api&amp;gt;1&amp;lt;/api&amp;gt;&amp;lt;/tt&amp;gt; - [[Video API]]&lt;br /&gt;
&lt;br /&gt;
To change the API, use the &amp;lt;tt&amp;gt;action=setup&amp;amp;api=X&amp;lt;/tt&amp;gt; parameters, e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://192.168.0.9/cgi-bin/admin/chapi.cgi?action=setup&amp;amp;api=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which will change the API even over reboots and return the changed configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;camera&amp;gt;&lt;br /&gt;
&amp;lt;api&amp;gt;1&amp;lt;/api&amp;gt;&lt;br /&gt;
&amp;lt;/camera&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [[ccam.cgi]] Attempt to describe the somewhat incomprehendible older API&lt;br /&gt;
* [[Video API]] Description of the the new Axis-compatible API&lt;br /&gt;
* [[AxisAPI]] Description of the Axis-camera API which is partially supported by the [[Video API]].&lt;/div&gt;</summary>
		<author><name>Dvdkhlng</name></author>	</entry>

	<entry>
		<id>https://wiki.elphel.com/index.php?title=Change_API_legacy&amp;diff=2812</id>
		<title>Change API legacy</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=Change_API_legacy&amp;diff=2812"/>
				<updated>2006-12-01T08:51:30Z</updated>
		
		<summary type="html">&lt;p&gt;Dvdkhlng: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Elphel cameras have two different APIs. The old [[ccam.cgi]] API and the [[Video API]] which is a superset of the [[AxisAPI]]. By default (after flashing), Elphel cameras (at least the 333 model) work in the [[ccam.cgi]] API mode, which means that all attempts to acces the images using the [[Video API]] will come  back with a 500 Server Error.&lt;br /&gt;
&lt;br /&gt;
To check wich API is currently active for your camera, use the &amp;quot;chapi.cgi&amp;quot; CGI script:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://192.168.0.9/cgi-bin/admin/chapi.cgi?action=status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return and XML document such as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;camera&amp;gt;&lt;br /&gt;
&amp;lt;api&amp;gt;0&amp;lt;/api&amp;gt;&lt;br /&gt;
&amp;lt;/camera&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0 - cigcam.api&lt;br /&gt;
&lt;br /&gt;
1 - Video API&lt;br /&gt;
&lt;br /&gt;
To change the API, use the action=setup&amp;amp;api=X parameters, e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://192.168.0.9/cgi-bin/admin/chapi.cgi?action=setup&amp;amp;api=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which will change the API even over reboots and return the changed configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;camera&amp;gt;&lt;br /&gt;
&amp;lt;api&amp;gt;1&amp;lt;/api&amp;gt;&lt;br /&gt;
&amp;lt;/camera&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dvdkhlng</name></author>	</entry>

	</feed>