Video API.Ru legacy
Простейшую систему, использующую Axis Video API, может создать любой, кто имеет хотя бы малейшие навыки написания HTML страниц. А установив набор дополнительного программного обеспечения, можно создать достаточно мощную систему видеонаблюдения с возможностью записи видеоархивов, журналирования, просмотра архивов и т.п.
Contents
Информация о размерах изображения
Некоторые параметры, задаваемые по умолчанию, или явно передаваемые при получении изображений, влияют на размеры получаемого изображения. К таким параметрам относятся resolution, e_dcm_hor, e_dcm_vert, e_woi_width, e_woi_height, e_woi_left, e_woi_top. Иногда клиентскому приложению необходимо знать заранее о размерах получаемого изображения (например, чтобы необходимое выделить место на странице браузера или в окне приложения). Получить такую информацию можно по адресу :
http://192.168.0.9/var/axis-cgi/view/imagesize.cgi?
Можно передавать на вход этого скрипта любые параметры, которые поддерживают image.cgi и video.cgi. Например :
http://192.168.0.9/var/axis-cgi/view/imagesize.cgi?e_dcm_vert=2&e_dcm_hor=2&e_woi_width=1800
Ответ сервера имеет следующий вид :
image width = 896 image height = 768
Статические изображения
Для получения картинки с камеры достаточно ввести в браузере следующий путь:
http://192.168.0.9/jpg/image.jpg
Примечание. 192.168.0.9 - это IP адрес, присваеваемый камере по-умолчанию. Если ваша камера имеет IP адрес отличный от 192.168.0.9, то используйте его.
Можно также запрашивать с камеры изображения с некоторым набором параметров. Для этого используется путь :
http://192.168.0.9/axis-cgi/jpg/image.cgi?param1=xxx¶m2=yyy&.....
Ниже приведен список параметров, которые можно использовать.
resolution=<string> Specify the resolution of the returned image, for example 800x600. Product-dependent. Просмотреть, какие значения поддерживает Ваша камера можно по адресу : http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&group=Properties.Image.Resolution
compression=<int> Adjusts the compression level of the image. Higher values correspond to higher compression, i.e. lower quality and smaller image size. Может принимать значение от 0 до 100. В большинстве случаев оптимальным является значение 30.
colorlevel=<int> Sets level of color or grey-scale. Может принимать значение от 0 до 100. 0 = grey-scale, 100 = full color.
color=<int> Enables/disables color. Может принимать значения 0 и 1. 0 = black and white, 1 = color.
rotation=<int> Rotates the image clockwise. Product-dependent. Просмотреть, какие значения поддерживает Ваша камера можно по адресу : http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&group=Properties.Image.Rotation
Кроме стандартных параметров, перечисленных выше, есть расширения, которые позволяют более гибко использовать камеры Elphel. Об этих расширениях смотрите страницу Video API Extensions.Ru.
Пример получения картинки с заданным набором параметров:
http://192.168.0.9/axis-cgi/jpg/image.cgi?resolution=1024x768&colorlrvel=45&compression=30
Если какой-то из параметров не задан, то используется значение по-умолчанию. Узнать какие значения используются по-умолчанию можно по адресу:
http://192.168.0.9/axis-cgi/admin/param.cgi?action=list&group=Image.I0.Appearance
Значения по-умолчанию можно изменять. Для этого нужно указать action=update. Например :
http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&Image.I0.Appearance.Resolution=512x384&Image.I0.Appearance.Rotation=180&ColorEnabled=no&Image.I0.Appearance.Compression=50
http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&ImageSource.I0.Sensor.ColorLevel=60
Видеопоток
Камеры позволяют получать непрерывный поток видеоданных. Этот поток может передаваться по двум протоколам HTTP и RTP.
HTTP
Jpeg
Поток представляет собой последовательность jpeg-файлов, разделенных специальной строкой-маркером. Такой формат передачи называется Multipart Jpeg или MPJPG. Чтобы получить видеопоток в данном формате, можно использовать следующий путь:
http://192.168.0.9/mjpg/video.mjpg
Как и для статических изображений, для видеопотока можно задавать параметры. Для этого используется следующий путь :
http://192.168.0.9/axis-cgi/mjpg/video.cgi?param1=xxx¶m2=yyy&.....
Кроме вышеперечисленных resolution, compression, colorlevel, color, rotation можно еще указывать:
duration=<int> Specifies for how many seconds the video will be generated and pushed to the client. 0 = unlimited.
nbrofframes=<int> Specifies how many frames the server will generate and push. 0 = unlimited.
fps=<int> Using fps it is possible to specify the frame rate from the server. 0 = unlimited.
По-умолчанию все эти значения равны 0. Изменить значение по-умолчанию можно,например, так :
http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&Image.I0.Stream.Duration=100&Image.I0.Stream.FPS=5&Image.I0.Stream.NbrOfFrames=1000
Кроме стандартных параметров, перечисленных выше, есть расширения, которые позволяют более гибко использовать камеры Elphel. Об этих расширениях смотрите страницу Video API Extensions.Ru.
На странице Video API And Client Applications.Ru можно найти информацию о программах, которые умеют принимать видеопоток формата MPJPG.
Theora
RTP
Jpeg
Каждый jpeg-файл разделяется на множество пакетов размером меньше 1500 байт и передается по сети по протоколу RTP/UDP. Передача данных в этом случае существенно ускоряется, но при этом падает надежность передачи, что может приводить в перегруженных сетях к потере некоторого количества видеоинформации.
На странице Video API And Client Applications.Ru можно найти информацию о программах, которые умеют принимать видеопоток формата RTP/JPEG.
Multicast
Чтобы получить видепоток по RTP/Multicast достаточно установить специальную переменную :
http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&Network.RTP.R0.AlwaysMulticast=yes
При этом будет сгенерирован видеопоток со значениями по-умолчанию для multicast IP адреса, порта назначения и TTL. Эти значения можно изменить следующим образом :
http://192.168.0.9/axis-cgi/admin/param.cgi?action=update&Network.RTP.R0.VideoAddress=224.21.23.44&Network.RTP.R0.VideoPort=22222&Network.RTP.R0.TTL=90
SDP
Такой видеопоток может быть принят, записан или воспроизведен при помощи mplayer, QuickTime, vic (из пакета mush). Для этого нужно с камеры получить SDP-файл :
http://192.168.0.9/mjpg/media.sdp
Сохраненный файл нужно передать на вход выбранной программы. Например:
mplayer sdp://media.sdp
RTSP
Оригинальная спецификация Axis Video API не поддерживает RTSP в режиме multicast. В камерах Elphel эта возможность реализована как расширение протокола.
Unicast
RTSP
Theora
Получение информации о функционировании системы
Получить системную информацию можно по адресу :
http://192.168.0.9/var/axis-cgi/admin/systemlog.cgi
или, более подробную, по адресу
http://192.168.0.9/var/axis-cgi/admin/serverreport.cgi
Время и дата
Получить дату и время
Узнать время, установленное в камере, можно по адресу :
http://192.168.0.9/axis-cgi/admin/date.cgi?action=get
Установить дату и время
Чтобы установить дату и время нужно использовать следующие параметры
action | - | set | |
year | - | 1970 - 2031 | Current year. |
month | - | 1 - 12 | Current month. |
day | - | 1 - 31 | Current day. |
hour | - | 0 - 23 | Current hour. |
minute | - | 0 - 59 | Current minute. |
second | - | 0 - 59 | Current second. |
Например :
http://192.168.0.9/axis-cgi/admin/date.cgi?action=set&year=2006&month=4&day=15&hour=14&minute=20&second=40
Управление пользователями
Video API позволяет :
- регистрировать и удалять пользователей
- изменять пароли пользователей
- вводить пользователей в нужные группы
Удаление существущего пользователя
http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=remove&user=joe
Создание нового пользователя
http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&user=joe&pwd=PASSWD&grp=axuser&sgrp=axview&comment=JOE
Есть особенности в создании новых пользователей для камер Elphel и Axis. Так, все создаваемые пользователи, которые будут иметь доступ к камере через Video API ДОЛЖНЫ принадлежать к группе axoper. Кроме того, такие пользователи должны принадлежать к одной или нескольким из вторичных групп :
axview | - | разрешен доступ к скриптам в каталоге /axis-cgi/view/ |
axoper | - | разрешен доступ к скриптам в каталоге /axis-cgi/operator/ |
axadmin | - | разрешен доступ к скриптам в каталоге /axis-cgi/admin/ |
При этом необходимо обратить особое внимание, что пользователи c полномочиями оператора должны входить во все три группы, с полномосиями оператора - в группы axoper и axview, и с полномочиями непривелигированного пользователя - только в группу axview. Пример создания трех пользователей с различными привелегиями :
- Администратор :
http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&user=administrator&pwd=foo&grp=axuser&sgrp=axadmin:axoper:axview&comment=Administrator
- Оператор :
http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&user=operator&pwd=foo&grp=axuser&sgrp=axoper:axview&comment=Operator
- Непривелигированный пользователь :
http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=add&user=administrator&pwd=foo&grp=axuser&sgrp=axview&comment=Viewer
Изменение пароля
http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=update&user=joe&pwd=pass
Изменение принадлежности к вторичной группе
http://192.168.0.9/axis-cgi/admin/pwdgrp.cgi?action=update&user=joe&sgrp=axview:axoper
Перезагрузка камеры
Чтобы дать команду на перезагрузку камеры, используйте следующий адрес :
http://192.168.0.9/var/axis-cgi/admin/restart.cgi