rtsp — biblioteca rtsp

O módulo rtsp na OpenMV Cam permite que você transmita vídeo da sua OpenMV Cam para qualquer cliente RTSP compatível (como o VLC).

Exemplo:

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 um cliente a rtsp://<camera-ip>:554/ para visualizar a transmissão.

class rtsp_server – classe rtsp_server

A classe rtsp_server cria um servidor web RTSP de conexão única na sua OpenMV Cam.

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

Cria um servidor RTSP vinculado a network_if.

network_if é a interface do módulo de rede criada a partir de network.LAN(), network.WLAN() ou similar.

port é a porta TCP na qual escutar. A porta RTSP padrão é 554.

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

Vincula um callback cb para ser invocado quando um cliente configura uma conexão RTSP.

O callback recebe pathname (o caminho do recurso de stream solicitado, com padrão "/") e session (um id de sessão aleatório).

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

Vincula um callback cb para ser invocado quando um cliente inicia a transmissão.

O callback recebe pathname e session conforme descrito em register_setup_cb().

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

Vincula um callback cb para ser invocado quando um cliente pausa a transmissão.

Observação: o botão de pausa do VLC não notifica de fato o servidor.

O callback recebe pathname e session conforme descrito em register_setup_cb().

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

Vincula um callback cb para ser invocado quando um cliente encerra a conexão RTSP.

O callback recebe pathname e session conforme descrito em register_setup_cb().

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

Inicia a execução da lógica do rtsp_server e não retorna.

image_callback é invocado para produzir cada quadro e deve retornar um objeto image.Image. Ele recebe pathname e session conforme descrito em rtsp_server.register_setup_cb().

quality é a qualidade de compressão JPEG usada durante a transmissão.