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 danetwork.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
cbda invocare quando un client imposta una connessione RTSP.Il callback riceve
pathname(il percorso della risorsa di stream richiesta, il valore predefinito è"/") esession(un id di sessione casuale).
- register_play_cb(cb: Callable[[str, int], None]) None¶
Associa un callback
cbda invocare quando un client avvia lo streaming.Il callback riceve
pathnameesessioncome descritto inregister_setup_cb().
- register_pause_cb(cb: Callable[[str, int], None]) None¶
Associa un callback
cbda invocare quando un client mette in pausa lo streaming.Nota: il pulsante di pausa di VLC non notifica effettivamente il server.
Il callback riceve
pathnameesessioncome descritto inregister_setup_cb().
- register_teardown_cb(cb: Callable[[str, int], None]) None¶
Associa un callback
cbda invocare quando un client chiude la connessione RTSP.Il callback riceve
pathnameesessioncome descritto inregister_setup_cb().
- stream(image_callback: Callable[[str, int], image.Image], quality: int = 90) None¶
Avvia l’esecuzione della logica
rtsp_servere non ritorna.image_callbackviene invocato per produrre ogni frame e deve restituire un oggettoimage.Image. Ricevepathnameesessioncome descritto inrtsp_server.register_setup_cb().qualityè la qualità di compressione JPEG usata durante lo streaming.