Advertisement
Guest User

Untitled

a guest
Mar 2nd, 2018
388
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.23 KB | None | 0 0
  1. Для того чтобы появилась возможность получения доступа к архиву через SDK, нужно сделать следующее:
  2. 1. Откройте настройки Trassir, зайдите в раздел Настройки сервера и выберите пункт «Веб-сервер».
  3. 2. В настройках Веб-сервера необходимо поставить галочки в следующих чекбоксах:
  4. Разрешить Webview (доступ из браузера) - данный пункт необходимо включить для возможности работать с Trassir извне(веб-интерфейс, SDK и т.п.)
  5. Trassir SDK - данную функцию нужно включить для того, чтобы была возможность взаимодействовать с ПО Trassir через SDK.
  6. Дерево объектов - позволяет получать дерево объектов.
  7. Пароль к SDK – здесь необходимо указать пароль, который будет использоваться для доступа к SDK ПО Trassir.
  8. Порт HTTPS-сервера – в случае необходимости можно указать порт, отличный от стандартного.
  9. Видео-сервер\Порт - порт видео, в случае необходимости можно указать порт, отличный от стандартного.
  10. Видео-сервер\FLV(JPEG, MJPEG) - поставьте галочку в чекбоксе, соответствующем формату видео в котором необходимо получать видеопоток(FLV, JPEG, MJPEG). Для просмотра RTSP видео по этому порту (мобильные клиенты), обязательно должна быть включена хотя бы одна галочка в этом списке. В мобильных клиентах MJPEG используется для просмотра архива, JPEG для просмотра перекодированного потока. Качество JPEG влияет на качество перекодированного потока в мобильном клиенте, при использовании параметров сервера.
  11. В списке каналов нужно отметить те каналы, с которых Вы собираетесь просматривать архив. (необязательно)
  12. Access1.jpg
  13. Скриншот 1
  14.  
  15. 3. После этого необходимо пройти авторизацию url-запросом следующего вида:
  16. https://SERVER_ADDRESS:SERVER_PORT/login?username=YOUR_USERNAME&password=YOUR_PASSWORD
  17.  
  18. где:
  19. SERVER_ADDRESS - IP-адрес сервера Trassir;
  20. SERVER_PORT - порт HTTPS-сервера, по которому будут отправляться запросы на сервер (см. скриншот 1). По умолчанию используется 8080;
  21. YOUR_USERNAME - имя вашего пользователя, обязательно должен быть включен доступ по сети;
  22. YOUR_PASSWORD — пароль вашего пользователя.
  23.  
  24. Ниже приведен пример запроса с рабочего сервера:
  25. https://192.168.1.125:8080/login?username=Admin&password=12345
  26. Url-запрос возвратит следующую информацию:
  27. Access2.jpg
  28. Скриншот 2
  29. 4. После этого необходимо запросить дерево объектов следующим url-запросом:
  30.  
  31. https://SERVER_ADDRESS:SERVER_PORT/objects/?password=SDK_PASSWORD
  32.  
  33. где:
  34. SERVER_ADDRESS - IP-адрес сервера Trassir;
  35. SERVER_PORT - порт HTTPS-сервера, по которому будут отправляться запросы на сервер (см. скриншот 1). По умолчанию используется 8080;
  36. SDK_PASSWORD - пароль, который был задан в поле «Пароль к SDK» в ПО Trassir (см. скриншот 1).
  37.  
  38.  
  39. Ниже приведен пример запроса с рабочего сервера:
  40. https://192.168.1.125:8080/objects/?password=1234
  41.  
  42. Url-запрос возвратит следующую информацию: Access3.jpg
  43. Скриншот 3
  44. 1) GUID сервера.
  45. 2) GUID канала.
  46.  
  47. 5. Затем необходимо запросить видео, для этого используется url следующего вида:
  48. https://SERVER_ADDRESS:SERVER_PORT/get_video?stream=archive&container=CONTAINER&channel=CHANNEL_GUID&sid=SID
  49. где:
  50. SERVER_ADDRESS - IP-адрес сервера Trassir;
  51. SERVER_PORT - порт HTTPS-сервера, по которому будут отправляться запросы на сервер (см. скриншот 1). По умолчанию используется 8080;
  52. CONTAINER - контейнер для получения видео(Необходимо чтобы аналогичная галочка стояла напротив пункта Видео-сервер\FLV(JPEG, MJPEG) (см. Скриншот 1)), варианты:
  53. FLV - флеш-видео;
  54. JPEG - будет выдан url, по которому можно забрать кадр,
  55. забирать придётся вручную каждый кадр;
  56. MJPEG - Multipart-x-replace data с кадрами в формате JPEG внутри, то есть последовательность jpeg-картинок в один поток;
  57. CHANNEL_GUID - GUID канала (см. Скриншот 3);
  58. SID - идентификатор сессии (см. Скриншот 2).
  59.  
  60. Пример:
  61. https://192.168.1.125:8080/get_video?stream=archive&container=mjpeg&channel=W0kKOnjE&sid=z4zEVo1N
  62.  
  63. Url-запрос возвратит следующую информацию:
  64. Access4.jpg
  65. Скриншот 4
  66. token - одноразовый пароль, необходимый для защиты передачи видео.
  67.  
  68. 6. Далее запрашиваем видеопоток:
  69.  
  70. http://SERVER_ADDRESS:SERVER_VIDEO_PORT/TOKEN
  71. где:
  72. SERVER_ADDRESS - IP-адрес сервера Trassir;
  73. SERVER_VIDEO_PORT - порт видео, по умолчанию 555 (см.Скриншот 1);
  74. TOKEN - одноразовый пароль, необходимый для защиты передачи видео(см. Скриншот 4).
  75. Пример:
  76. http://192.168.1.125:555/BTcQd4Kp
  77. Данный url необходимо указать в каком-любо плеере, который позволяет проигрывать видео из сети.
  78. Вам будет выдан либо flv-поток, либо ответ вида multipart data, либо картинка в jpeg, в зависимости от того, что вы указали в CONTAINER в пункте 5.
  79. Поскольку Вы в архиве, Вам придёт максимум один кадр (если архив вообще есть и он спозиционирован на кадр), в связи с этим необходимо послать команду архиву.
  80. Команды архиву[править]
  81. Играть:
  82. https://localhost:8080/archive_command?token=TOKEN&command=play&start=START&stop=STOP&speed=SPEED&sid=SID
  83.  
  84. Стоп:
  85. https://localhost:8080/archive_command?token=TOKEN&command=stop&sid=SID
  86.  
  87. Переход на определённое время:
  88. https://localhost:8080/archive_command?token=TOKEN&command=seek&sid=SID&timestamp=TIMESTAMP&direction=DIRECTION
  89.  
  90. Навигация по записям:
  91. Следующая запись:
  92. https://localhost:8080/archive_command?token=TOKEN&command=next&sid=SID
  93. Предыдущая запись:
  94. https://localhost:8080/archive_command?token=TOKEN&command=prev&sid=SID
  95. Навигация по кадрам:
  96. Следующий кадр:
  97. https://localhost:8080/archive_command?token=TOKEN&command=frame_next&sid=SID
  98. Предыдущий кадр:
  99. https://localhost:8080/archive_command?token=TOKEN&command=frame_prev&sid=SID
  100. Первый кадр:
  101. https://localhost:8080/archive_command?token=TOKEN&command=frame_first&sid=SID
  102. Последний кадр:
  103. https://localhost:8080/archive_command?token=TOKEN&command=frame_last&sid=SID
  104. где:
  105.  
  106. START - дата и время, начала проигрываемого участка;
  107. STOP - дата и время, окончания проигрываемого участка;
  108. SPEED - скорость, можно отрицательную;
  109. TIMESTAMP - дата и время. Поддерживаемые форматы даты и времени:
  110. UNIX:
  111. TIMESTAMP, 16-разрядное число, также обычно используется в UNIX;
  112. UNIXTIME, 10-разрядное число, обычно используется в системах UNIX;
  113. ISO:
  114. YYYY-MM-DD HH:MM:SS
  115. YYYY-MM-DDTHH:MM:SS
  116. YYYYMMDD-HHMMSS
  117. YYYYMMDDTHHMMSS
  118. буква T - это просто латинская T;
  119.  
  120. DIRECTION - что делать, если там нет кадра:
  121. 1 - посмотреть вперёд,
  122. -1 - посмотреть назад,
  123. 0 - просто ближайший кадр
  124. TOKEN - одноразовый пароль, необходимый для защиты передачи видео(см. Скриншот 4);
  125. SID - идентификатор сессии (см. Скриншот 2).
  126.  
  127. Запрос состояний:
  128. Ответ будет содержать список в котором для каждого токена полученного в запрашиваемой сессии будет выдан результат.
  129.  
  130. Текущее состояние:
  131. https://localhost:8080/archive_status?sid=SID&type=state
  132. результат содержит:
  133.  
  134. token,
  135. time в формате "YY-MM-DD hh:mm:ss",
  136. speed - текущая скорость воспроизведения,
  137. state - это битовая маска
  138. "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 - описание состояния,
  139.  
  140. state_time - время изменения состояния.
  141. Получение таймлайна:
  142. https://localhost:8080/archive_status?sid=SID&type=timeline
  143. результат содержит:
  144.  
  145. day_start - дата в которой находится курсор воспроизведения в виде "YY-MM-DD"
  146. timeline - массив записей, состоит из времен начала и конца записи
  147. begin, end измеряется в секундах текущего дня от 0 до 86400
  148. Запрос календаря:
  149. https://localhost:8080/archive_status?sid=SID&type=calendar
  150. token,
  151. calendar каждому токену свой календарь в котором указаны списком те дни архива в которых есть записи в виде "YY-MM-DD"
  152. Получение событий:
  153.  
  154. https://localhost:8080/archive_events?sid=SID&token=TOKEN на данный момент это самый продвинутый способ работы с архивом через SDK, потому что он еще и жизнь токену продлевает, см. ниже.
  155.  
  156. События представляют из себя json данные:
  157. - где есть обязательный параметр 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 содержит:
  158.  
  159. day_start - дата в которой находится курсор воспроизведения в виде "YY-MM-DD"
  160. timeline - строка содержит в себе 16ричные значения каждый бит в котором это 1 секунда дня, если бит true значит в этой секунде имеется запись. выглядит так примерно "00FF00...7F00"
  161. CalendarEvent содержит:
  162.  
  163. calendar - список дней архива в которых есть записи в виде "YY-MM-DD"
  164. StateTransitionEvent содержит:
  165.  
  166. state - код измененного состояния
  167. state_desc - описание
  168. state_time - время изменения состояния "YY-MM-DD hh:mm:ss"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement