Как использовать функцию OpenAPI камеры VIGI

Руководство по настройке
Последнее обновление:июля 21, 2026

Содержание

Введение

Требования

Настройка

Настройка доступа к OpenAPI

Аутентификация интерфейса управления и запросы API

Аутентификация потокового интерфейса и потоковые запросы

Проверка

Заключение

Вопросы и ответы

Введение

OpenAPI камер VIGI позволяет сторонним приложениям взаимодействовать с камерами VIGI по сети для настройки устройств, подписки на события и выполнения операций, связанных с видеопотоком. Через интерфейс управления клиент OpenAPI может запрашивать или изменять параметры камеры и подписываться на сообщения о событиях. Через потоковый интерфейс можно выполнять операции с видеопотоком, такие как предпросмотр, воспроизведение, загрузка записей и двусторонняя связь.

В этой статье рассказывается, как включить OpenAPI на камере VIGI, выполнить аутентификацию, вызывать API интерфейса управления и понять общий принцип работы запросов потокового интерфейса.

Требования

Настройка

Настройка доступа к OpenAPI

Перед вызовом интерфейсов OpenAPI камеры VIGI включите OpenAPI на камере. Следующие шаги приведены на примере веб-интерфейса управления камерой.

Шаг 1. Войдите в веб-интерфейс камеры по ее IP-адресу. Введите имя пользователя и пароль, затем нажмите Войти.

Страница входа в камеру с полями IP-адреса, имени пользователя и пароля, а также кнопкой Войти.

Шаг 2. Перейдите в раздел Настройки > Сетевые настройки > OpenAPI, включите переключатель OpenAPI и нажмите Применить, чтобы сохранить конфигурацию.

Страница OpenAPI камеры VIGI с включенным переключателем OpenAPI в разделе сетевых настроек.

 

Аутентификация интерфейса управления и запросы API

Интерфейс управления OpenAPI камер VIGI использует HTTPS. Перед вызовом интерфейса управления клиенту OpenAPI необходимо выполнить аутентификацию Do Auth и получить токен stok. Порт управления OpenAPI по умолчанию: 20443.

Шаг 1. Отправьте первый запрос doAuth для получения полей аутентификации.

Отправьте POST-запрос на https://<IP_камеры>:20443. В теле запроса установите method в doAuth, а params в null. Камера возвращает поля аутентификации, используемые для вычисления ответа, включая realm, nonce, algorithm, uri и method.
Пример команды curl в Windows:
Запрос:
curl.exe --% -k -X POST https://192.168.0.100:20443 -H "Content-Type: application/json" -d "{\"method\":\"doAuth\",\"params\":null}"
Ответ:
{"method":"doAuth","authenticate":{"realm":"TP-LINK IP-Camera","nonce":"c51594999c7dcfd020e97a2688d431d0","algorithm":"SHA-256","uri":"doAuth","method":"POST"},"errCode":-10020}

Windows PowerShell показывает первый запрос doAuth и возвращенные камерой поля аутентификации.

 

Шаг 2. Отправьте второй запрос doAuth для получения токена stok.
Вычислите ответ на основе полей аутентификации, полученных на Шаге 1, и пароля для входа в камеру. Если возвращенный алгоритм — SHA-256, вычислите ответ следующим образом:

A1 = SHA256(admin:<realm>:<password>)

A2 = SHA256(<method>:<uri>)

response = SHA256(A1:<nonce>:A2)
Затем отправьте POST-запрос на https://<IP_камеры>:20443. В теле запроса установите method в doAuth и включите в params возвращенный nonce и вычисленный response.

Пример команды curl в Windows:

Запрос:
curl.exe --% -k -X POST https://192.168.0.100:20443 -H "Content-Type: application/json" -d "{\"method\":\"doAuth\",\"params\":{\"nonce\":\"c51594999c7dcfd020e97a2688d431d0\",\"response\":\"ae990e323d2370c9a6cbcf638b5808f006f2c32343034787205f00d81c1fe16a\"}}"
Ответ:
{"method":"doAuth","stok":"jqNXOtUS7*Qu0XSvOqO0uOXst1ZlOOcD","errCode":0}

Windows PowerShell показывает второй запрос doAuth, возвращающий токен stok с errCode 0.

 

Шаг 3. Вызов API интерфейса управления

После получения токена stok добавьте его в URL запроса и отправьте целевой запрос к интерфейсу управления в формате JSON. Метод запроса — POST, а формат URL запроса: https://<IP_камеры>:20443/stok=<stok>.

В этом разделе приведены два примера: обычный запрос к интерфейсу управления для установки часового пояса камеры и запрос на подписку на события для получения сообщений о событиях.

Пример 1: Установка часового пояса камеры
Интерфейс setTimeZone используется для установки часового пояса камеры. В теле запроса установите method в setTimeZone и укажите timezone и area в params. В следующем примере часовой пояс камеры устанавливается на America/Los_Angeles.

Запрос:
curl.exe --% -k -X POST https://192.168.0.100:20443/stok=jqNXOtUS7*Qu0XSvOqO0uOXst1ZlOOcD -H "Content-Type: application/json" -d "{\"method\":\"setTimeZone\",\"params\":{\"timezone\":\"UTC-08:00\",\"area\":\"America/Los_Angeles\"}}"
Ответ:
{"method":"setTimeZone","errCode":0}

Windows PowerShell показывает запрос setTimeZone с ответом errCode 0.

Пример 2: Подписка на сообщения о событиях

Интерфейс subscribeMsg используется для подписки на сообщения о событиях обнаружения. В теле запроса установите method в subscribeMsg и укажите event_type и heartbeat в params. После отправки запроса оставьте соединение открытым. Камера периодически отправляет сигналы heartbeat и推送 сообщения о событиях через это же соединение при наступлении события.

Запрос:

curl.exe --% -k -N -X POST https://192.168.0.100:20443/stok=jqNXOtUS7*Qu0XSvOqO0uOXst1ZlOOcD -H "Content-Type: application/json" -d "{\"method\":\"subscribeMsg\",\"params\":{\"event_type\":[\"all\"],\"heartbeat\":10}}"

Ответ:

{"method":"subscribeMsg","errCode":0}

Windows PowerShell показывает запрос subscribeMsg с ответом errCode 0.

 

Аутентификация потокового интерфейса и потоковые запросы

Потоковый интерфейс OpenAPI камер VIGI устанавливается через RTSP. Клиенту OpenAPI необходимо пройти аутентификацию Digest перед отправкой запросов, связанных с видеопотоком. В этом разделе на примере загрузки записей описан общий порядок работы с потоковым интерфейсом.

Шаг 1. При необходимости получите параметры потокового запроса.

Для некоторых операций с потоком, например для запроса загрузки через потоковый интерфейс, клиент должен сначала получить необходимые параметры через интерфейс управления. Например, перед отправкой запроса на загрузку вызовите getMediaList из Раздела 4.11.1 документации OpenAPI VIGI IPC, чтобы получить время начала и окончания записи, FileID, event_type и другую информацию. Затем используйте полученные параметры в запросе загрузки через потоковый интерфейс.

Шаг 2. Проверьте порт RTSP.

Проверьте порт RTSP камеры на веб-странице управления камерой в разделе Настройки > Сетевые настройки > Сетевые службы > RTSP. В этом примере порт RTSP — 554. Если доступ к камере осуществляется через проброс портов, используйте внешний порт RTSP, настроенный на маршрутизаторе, а не внутренний порт RTSP камеры.

Страница RTSP камеры VIGI с портом 554 в разделе Сетевые службы.

 

Шаг 3. Установите RTSP-соединение и выполните аутентификацию Digest.

Клиент устанавливает TCP-соединение с RTSP-портом камеры и отправляет начальный запрос MULTITRANS. Камера возвращает ответ 401 Unauthorized с параметрами аутентификации Digest. Клиент вычисляет ответ аутентификации на основе имени пользователя, пароля, метода запроса, URI запроса и полученных параметров аутентификации, затем повторно отправляет запрос MULTITRANS с заголовком аутентификации. Подробнее о вычислении аутентификации Digest см. в Разделе 2.2.2 Аутентификация Digest документации OpenAPI VIGI IPC.

Шаг 4. Отправьте запрос к потоковому интерфейсу.

После успешной аутентификации Digest клиент отправляет необходимый запрос к потоковому интерфейсу, например, предпросмотр, воспроизведение, загрузка записи, остановка, воспроизведение, принудительный I-кадр или двусторонняя связь. Для загрузки записи камера возвращает ответ 200 OK с информацией о кодеках и начинает отправлять данные RTP по TCP-соединению. Подробнее о методах и параметрах потокового интерфейса см. в Разделе 5 Потоковый интерфейс OpenAPI документации OpenAPI VIGI IPC.

Шаг 5. Прием и разбор данных RTP.

Данные потока передаются как RTP over TCP. Клиенту необходимо идентифицировать пакеты RTP по первому байту $, прочитать идентификатор канала и длину полезной нагрузки, а затем разобрать заголовок и полезную нагрузку RTP. Клиент также должен определять тип медиаданных в соответствии с типом полезной нагрузки RTP. Подробнее о структуре пакетов RTP over TCP см. в Разделе 2.3 Передача данных. Определения типов полезной нагрузки см. в Приложении 2 Тип полезной нагрузки документации OpenAPI VIGI IPC.

Шаг 6. Проверьте и обработайте аудиокодек, если задействованы аудиоданные.

Если операция с потоком включает аудиоданные, например, загрузка записи с аудио или двусторонняя связь, сначала вызовите интерфейс getAudioEncode из Раздела 4.4.6 документации OpenAPI VIGI IPC, чтобы проверить аудиокодек камеры. Клиент должен обрабатывать полезную нагрузку аудио RTP в соответствии с возвращенным encode_type.

 

Проверка

После вызова API интерфейса управления в приведенных выше примерах проверьте результаты следующим образом.
Проверка примера 1: Установка часового пояса камеры
После того как запрос setTimeZone вернет "errCode": 0, войдите в веб-интерфейс управления камерой и перейдите в раздел Настройки > Системные настройки > Основные настройки > Дата. Проверьте, изменилось ли значение Часовой пояс на настроенный. В этом примере часовой пояс должен измениться на (UTC-08:00) Тихоокеанское время.Страница Дата камеры VIGI с измененным часовым поясом на UTC-08:00 Тихоокеанское время.

 

Проверка примера 2: Подписка на сообщения о событиях

После того как запрос subscribeMsg вернет "result": "success" и "errCode": 0, оставьте команду выполняться. Камера отправляет сигналы heartbeat с настроенным интервалом и推送 сообщения о событиях через это же соединение при наступлении события.

В этом примере event_type установлен в all, а heartbeat — в 10. Следовательно, в терминале должны печататься сигналы heartbeat каждые 10 секунд и сообщения о событиях при наступлении любого подписанного события.

Windows PowerShell печатает сигналы heartbeat и сообщения о событии MotionDetection после успешной подписки subscribeMsg.

 

Заключение

После выполнения шагов, описанных в этой статье, вы сможете включить OpenAPI на камере VIGI, выполнить аутентификацию и вызывать интерфейс управления или потоковый интерфейс по мере необходимости. Примеры также показывают, как проверить типичные вызовы интерфейса управления и понять общий порядок работы с запросами к потоковому интерфейсу.

 

Вопросы и ответы

В1: Как клиенту следует управлять соединениями при вызове интерфейса управления?
О1: Для вызовов интерфейса управления создавайте новое соединение для каждого API-запроса.

После получения токена stok через doAuth используйте его для вызова необходимого API интерфейса управления, например, getDeviceInfo или setTimeZone. Каждый API-запрос должен отправляться через отдельное соединение, чтобы запрос мог быть отправлен и обработан независимо.

Для subscribeMsg оставляйте соединение открытым после успешной подписки. Камера использует это соединение для отправки сигналов heartbeat и сообщений о событиях.

В2: Где найти документацию OpenAPI для VIGI IPC?
О2: Перейдите в Центр загрузок, найдите модель камеры и откройте страницу загрузки продукта. В разделе Руководства загрузите соответствующую документацию OpenAPI для VIGI IPC.

 

Показано, где найти документацию OpenAPI.

Чтобы узнать больше подробностей о каждой функции и настройке, перейдите в Центр загрузок и скачайте руководство для вашего продукта.

Часто задаваемые вопросы по теме

Ищете больше информации?

Полезен ли этот FAQ?

Ваши отзывы помогают улучшить этот сайт.

This Article Applies to:

Community

TP-Link Community

Still need help? Search for answers, ask questions, and get help from TP-Link experts and other users around the world.

Visit the Community >