Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Для того чтобы появилась возможность получения доступа к архиву через SDK, нужно сделать следующее:
- 1. Откройте настройки Trassir, зайдите в раздел Настройки сервера и выберите пункт «Веб-сервер».
- 2. В настройках Веб-сервера необходимо поставить галочки в следующих чекбоксах:
- Разрешить Webview (доступ из браузера) - данный пункт необходимо включить для возможности работать с Trassir извне(веб-интерфейс, SDK и т.п.)
- Trassir SDK - данную функцию нужно включить для того, чтобы была возможность взаимодействовать с ПО Trassir через SDK.
- Дерево объектов - позволяет получать дерево объектов.
- Пароль к SDK – здесь необходимо указать пароль, который будет использоваться для доступа к SDK ПО Trassir.
- Порт HTTPS-сервера – в случае необходимости можно указать порт, отличный от стандартного.
- Видео-сервер\Порт - порт видео, в случае необходимости можно указать порт, отличный от стандартного.
- Видео-сервер\FLV(JPEG, MJPEG) - поставьте галочку в чекбоксе, соответствующем формату видео в котором необходимо получать видеопоток(FLV, JPEG, MJPEG). Для просмотра RTSP видео по этому порту (мобильные клиенты), обязательно должна быть включена хотя бы одна галочка в этом списке. В мобильных клиентах MJPEG используется для просмотра архива, JPEG для просмотра перекодированного потока. Качество JPEG влияет на качество перекодированного потока в мобильном клиенте, при использовании параметров сервера.
- В списке каналов нужно отметить те каналы, с которых Вы собираетесь просматривать архив. (необязательно)
- Access1.jpg
- Скриншот 1
- 3. После этого необходимо пройти авторизацию url-запросом следующего вида:
- https://SERVER_ADDRESS:SERVER_PORT/login?username=YOUR_USERNAME&password=YOUR_PASSWORD
- где:
- SERVER_ADDRESS - IP-адрес сервера Trassir;
- SERVER_PORT - порт HTTPS-сервера, по которому будут отправляться запросы на сервер (см. скриншот 1). По умолчанию используется 8080;
- YOUR_USERNAME - имя вашего пользователя, обязательно должен быть включен доступ по сети;
- YOUR_PASSWORD — пароль вашего пользователя.
- Ниже приведен пример запроса с рабочего сервера:
- https://192.168.1.125:8080/login?username=Admin&password=12345
- Url-запрос возвратит следующую информацию:
- Access2.jpg
- Скриншот 2
- 4. После этого необходимо запросить дерево объектов следующим url-запросом:
- https://SERVER_ADDRESS:SERVER_PORT/objects/?password=SDK_PASSWORD
- где:
- SERVER_ADDRESS - IP-адрес сервера Trassir;
- SERVER_PORT - порт HTTPS-сервера, по которому будут отправляться запросы на сервер (см. скриншот 1). По умолчанию используется 8080;
- SDK_PASSWORD - пароль, который был задан в поле «Пароль к SDK» в ПО Trassir (см. скриншот 1).
- Ниже приведен пример запроса с рабочего сервера:
- https://192.168.1.125:8080/objects/?password=1234
- Url-запрос возвратит следующую информацию: Access3.jpg
- Скриншот 3
- 1) GUID сервера.
- 2) GUID канала.
- 5. Затем необходимо запросить видео, для этого используется url следующего вида:
- https://SERVER_ADDRESS:SERVER_PORT/get_video?stream=archive&container=CONTAINER&channel=CHANNEL_GUID&sid=SID
- где:
- SERVER_ADDRESS - IP-адрес сервера Trassir;
- SERVER_PORT - порт HTTPS-сервера, по которому будут отправляться запросы на сервер (см. скриншот 1). По умолчанию используется 8080;
- CONTAINER - контейнер для получения видео(Необходимо чтобы аналогичная галочка стояла напротив пункта Видео-сервер\FLV(JPEG, MJPEG) (см. Скриншот 1)), варианты:
- FLV - флеш-видео;
- JPEG - будет выдан url, по которому можно забрать кадр,
- забирать придётся вручную каждый кадр;
- MJPEG - Multipart-x-replace data с кадрами в формате JPEG внутри, то есть последовательность jpeg-картинок в один поток;
- CHANNEL_GUID - GUID канала (см. Скриншот 3);
- SID - идентификатор сессии (см. Скриншот 2).
- Пример:
- https://192.168.1.125:8080/get_video?stream=archive&container=mjpeg&channel=W0kKOnjE&sid=z4zEVo1N
- Url-запрос возвратит следующую информацию:
- Access4.jpg
- Скриншот 4
- token - одноразовый пароль, необходимый для защиты передачи видео.
- 6. Далее запрашиваем видеопоток:
- http://SERVER_ADDRESS:SERVER_VIDEO_PORT/TOKEN
- где:
- SERVER_ADDRESS - IP-адрес сервера Trassir;
- SERVER_VIDEO_PORT - порт видео, по умолчанию 555 (см.Скриншот 1);
- TOKEN - одноразовый пароль, необходимый для защиты передачи видео(см. Скриншот 4).
- Пример:
- http://192.168.1.125:555/BTcQd4Kp
- Данный url необходимо указать в каком-любо плеере, который позволяет проигрывать видео из сети.
- Вам будет выдан либо flv-поток, либо ответ вида multipart data, либо картинка в jpeg, в зависимости от того, что вы указали в CONTAINER в пункте 5.
- Поскольку Вы в архиве, Вам придёт максимум один кадр (если архив вообще есть и он спозиционирован на кадр), в связи с этим необходимо послать команду архиву.
- Команды архиву[править]
- Играть:
- https://localhost:8080/archive_command?token=TOKEN&command=play&start=START&stop=STOP&speed=SPEED&sid=SID
- Стоп:
- https://localhost:8080/archive_command?token=TOKEN&command=stop&sid=SID
- Переход на определённое время:
- https://localhost:8080/archive_command?token=TOKEN&command=seek&sid=SID×tamp=TIMESTAMP&direction=DIRECTION
- Навигация по записям:
- Следующая запись:
- https://localhost:8080/archive_command?token=TOKEN&command=next&sid=SID
- Предыдущая запись:
- https://localhost:8080/archive_command?token=TOKEN&command=prev&sid=SID
- Навигация по кадрам:
- Следующий кадр:
- https://localhost:8080/archive_command?token=TOKEN&command=frame_next&sid=SID
- Предыдущий кадр:
- https://localhost:8080/archive_command?token=TOKEN&command=frame_prev&sid=SID
- Первый кадр:
- https://localhost:8080/archive_command?token=TOKEN&command=frame_first&sid=SID
- Последний кадр:
- https://localhost:8080/archive_command?token=TOKEN&command=frame_last&sid=SID
- где:
- START - дата и время, начала проигрываемого участка;
- STOP - дата и время, окончания проигрываемого участка;
- SPEED - скорость, можно отрицательную;
- TIMESTAMP - дата и время. Поддерживаемые форматы даты и времени:
- UNIX:
- TIMESTAMP, 16-разрядное число, также обычно используется в UNIX;
- UNIXTIME, 10-разрядное число, обычно используется в системах UNIX;
- ISO:
- YYYY-MM-DD HH:MM:SS
- YYYY-MM-DDTHH:MM:SS
- YYYYMMDD-HHMMSS
- YYYYMMDDTHHMMSS
- буква T - это просто латинская T;
- DIRECTION - что делать, если там нет кадра:
- 1 - посмотреть вперёд,
- -1 - посмотреть назад,
- 0 - просто ближайший кадр
- TOKEN - одноразовый пароль, необходимый для защиты передачи видео(см. Скриншот 4);
- SID - идентификатор сессии (см. Скриншот 2).
- Запрос состояний:
- Ответ будет содержать список в котором для каждого токена полученного в запрашиваемой сессии будет выдан результат.
- Текущее состояние:
- https://localhost:8080/archive_status?sid=SID&type=state
- результат содержит:
- token,
- time в формате "YY-MM-DD hh:mm:ss",
- speed - текущая скорость воспроизведения,
- state - это битовая маска
- "0x01 - stopped\n" "0x02 - playing\n" "0x04 - seeking (trying to get to requested position)\n" "0x08 - encountered an error\n" "0x10 - disks are busy\n", state_desc - описание состояния,
- state_time - время изменения состояния.
- Получение таймлайна:
- https://localhost:8080/archive_status?sid=SID&type=timeline
- результат содержит:
- day_start - дата в которой находится курсор воспроизведения в виде "YY-MM-DD"
- timeline - массив записей, состоит из времен начала и конца записи
- begin, end измеряется в секундах текущего дня от 0 до 86400
- Запрос календаря:
- https://localhost:8080/archive_status?sid=SID&type=calendar
- token,
- calendar каждому токену свой календарь в котором указаны списком те дни архива в которых есть записи в виде "YY-MM-DD"
- Получение событий:
- https://localhost:8080/archive_events?sid=SID&token=TOKEN на данный момент это самый продвинутый способ работы с архивом через SDK, потому что он еще и жизнь токену продлевает, см. ниже.
- События представляют из себя json данные:
- - где есть обязательный параметр event_name для различия событий и бывает следующим: TimeChangedEvent - сообщает о смещении текущей позиции курсора архива содержит: time в формате "YY-MM-DD hh:mm:ss" SpeedLimitEvent содержит: speed_limit SpeedEvent содержит: speed LargeVoidStartEvent содержит: void_end - время старта следующего фрагмента "YY-MM-DD hh:mm:ss" передается в команду play TimelineEvent содержит:
- day_start - дата в которой находится курсор воспроизведения в виде "YY-MM-DD"
- timeline - строка содержит в себе 16ричные значения каждый бит в котором это 1 секунда дня, если бит true значит в этой секунде имеется запись. выглядит так примерно "00FF00...7F00"
- CalendarEvent содержит:
- calendar - список дней архива в которых есть записи в виде "YY-MM-DD"
- StateTransitionEvent содержит:
- state - код измененного состояния
- state_desc - описание
- state_time - время изменения состояния "YY-MM-DD hh:mm:ss"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement