rtsp — biblioteca rtsp

El módulo rtsp de la OpenMV Cam le permite transmitir video desde su OpenMV Cam a cualquier cliente RTSP compatible (como VLC).

Ejemplo:

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)

Conecte un cliente a rtsp://<camera-ip>:554/ para ver la transmisión.

class rtsp_server – clase rtsp_server

La clase rtsp_server crea un servidor web RTSP de una sola conexión en su OpenMV Cam.

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

Crea un servidor RTSP enlazado a network_if.

network_if es la interfaz del módulo de red creada a partir de network.LAN(), network.WLAN() o similar.

port es el puerto TCP en el que escuchar. El puerto RTSP predeterminado es 554.

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

Enlaza una función de retorno cb para que se invoque cuando un cliente establece una conexión RTSP.

La función de retorno recibe pathname (la ruta del recurso de transmisión solicitado, por defecto "/") y session (un id de sesión aleatorio).

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

Enlaza una función de retorno cb para que se invoque cuando un cliente inicia la transmisión.

La función de retorno recibe pathname y session como se describe en register_setup_cb().

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

Enlaza una función de retorno cb para que se invoque cuando un cliente pausa la transmisión.

Nota: el botón de pausa de VLC en realidad no notifica al servidor.

La función de retorno recibe pathname y session como se describe en register_setup_cb().

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

Enlaza una función de retorno cb para que se invoque cuando un cliente cierra la conexión RTSP.

La función de retorno recibe pathname y session como se describe en register_setup_cb().

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

Inicia la ejecución de la lógica de rtsp_server y no retorna.

image_callback se invoca para producir cada fotograma y debe devolver un objeto image.Image. Recibe pathname y session como se describe en rtsp_server.register_setup_cb().

quality es la calidad de compresión JPEG usada durante la transmisión.