rtsp — библиотека rtsp

Модуль rtsp на OpenMV Cam позволяет передавать видео с вашей OpenMV Cam на любой совместимый RTSP-клиент (например, VLC).

Пример:

import network
import rtsp
import csi
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.VGA)

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("your-ssid", "your-password")
while not wlan.isconnected():
    time.sleep_ms(100)

server = rtsp.rtsp_server(wlan)

# Called each time the server needs a new frame to send.
def image_callback(pathname, session):
    return csi0.snapshot()

# Does not return; streams to any RTSP client that connects.
server.stream(image_callback, quality=70)

Подключите клиента к rtsp://<camera-ip>:554/ для просмотра потока.

class rtsp_server – класс rtsp_server

Класс rtsp_server создаёт на вашей OpenMV Cam RTSP-веб-сервер с одним соединением.

class rtsp.rtsp_server(network_if: Any, port: int = 554)

Создаёт RTSP-сервер, привязанный к network_if.

network_if — это интерфейс сетевого модуля, созданный с помощью network.LAN(), network.WLAN() или аналогичного.

port — это TCP-порт для прослушивания. RTSP-порт по умолчанию — 554.

register_setup_cb(cb: Callable[[str, int], None]) None

Привязывает функцию обратного вызова cb для вызова, когда клиент устанавливает RTSP-соединение.

Функция обратного вызова получает pathname (запрашиваемый путь к ресурсу потока, по умолчанию "/") и session (случайный идентификатор сессии).

register_play_cb(cb: Callable[[str, int], None]) None

Привязывает функцию обратного вызова cb для вызова, когда клиент начинает потоковую передачу.

Функция обратного вызова получает pathname и session, как описано в register_setup_cb().

register_pause_cb(cb: Callable[[str, int], None]) None

Привязывает функцию обратного вызова cb для вызова, когда клиент приостанавливает потоковую передачу.

Примечание: кнопка паузы VLC фактически не уведомляет сервер.

Функция обратного вызова получает pathname и session, как описано в register_setup_cb().

register_teardown_cb(cb: Callable[[str, int], None]) None

Привязывает функцию обратного вызова cb для вызова, когда клиент разрывает RTSP-соединение.

Функция обратного вызова получает pathname и session, как описано в register_setup_cb().

stream(image_callback: Callable[[str, int], image.Image], quality: int = 90) None

Запускает логику rtsp_server и не возвращает управление.

image_callback вызывается для создания каждого кадра и должна возвращать объект image.Image. Она получает pathname и session, как описано в rtsp_server.register_setup_cb().

quality — это качество JPEG-сжатия, используемое во время потоковой передачи.