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 створює RTSP-веб-сервер з одним підключенням на OpenMV Cam.

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 під час трансляції.