rtsp — libreria rtsp

Il modulo rtsp sull’OpenMV Cam consente di trasmettere video in streaming dalla propria OpenMV Cam a qualsiasi client RTSP compatibile (come VLC).

Esempio:

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)

Collegare un client a rtsp://<camera-ip>:554/ per visualizzare lo stream.

classe rtsp_server – classe rtsp_server

La classe rtsp_server crea un server web RTSP a connessione singola sulla propria OpenMV Cam.

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

Crea un server RTSP collegato a network_if.

network_if è l’interfaccia del modulo di rete creata da network.LAN(), network.WLAN() o simili.

port è la porta TCP su cui ascoltare. La porta RTSP predefinita è 554.

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

Associa un callback cb da invocare quando un client imposta una connessione RTSP.

Il callback riceve pathname (il percorso della risorsa di stream richiesta, il valore predefinito è "/") e session (un id di sessione casuale).

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

Associa un callback cb da invocare quando un client avvia lo streaming.

Il callback riceve pathname e session come descritto in register_setup_cb().

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

Associa un callback cb da invocare quando un client mette in pausa lo streaming.

Nota: il pulsante di pausa di VLC non notifica effettivamente il server.

Il callback riceve pathname e session come descritto in register_setup_cb().

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

Associa un callback cb da invocare quando un client chiude la connessione RTSP.

Il callback riceve pathname e session come descritto in register_setup_cb().

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

Avvia l’esecuzione della logica rtsp_server e non ritorna.

image_callback viene invocato per produrre ogni frame e deve restituire un oggetto image.Image. Riceve pathname e session come descritto in rtsp_server.register_setup_cb().

quality è la qualità di compressione JPEG usata durante lo streaming.