rtsp — bibliothèque rtsp

Le module rtsp de l’OpenMV Cam vous permet de diffuser de la vidéo depuis votre OpenMV Cam vers n’importe quel client RTSP compatible (comme VLC).

Exemple

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)

Connectez un client à rtsp://<camera-ip>:554/ pour visualiser le flux.

classe rtsp_server – classe rtsp_server

La classe rtsp_server crée un serveur web RTSP à connexion unique sur votre OpenMV Cam.

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

Crée un serveur RTSP lié à network_if.

network_if est l’interface du module réseau créée à partir de network.LAN(), network.WLAN(), ou similaire.

port est le port TCP sur lequel écouter. Le port RTSP par défaut est 554.

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

Lie une fonction de rappel cb à invoquer lorsqu’un client établit une connexion RTSP.

La fonction de rappel reçoit pathname (le chemin de la ressource de flux demandée, par défaut "/") et session (un identifiant de session aléatoire).

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

Lie une fonction de rappel cb à invoquer lorsqu’un client commence la diffusion.

La fonction de rappel reçoit pathname et session comme décrit dans register_setup_cb().

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

Lie une fonction de rappel cb à invoquer lorsqu’un client met la diffusion en pause.

Note : le bouton de pause de VLC ne notifie pas réellement le serveur.

La fonction de rappel reçoit pathname et session comme décrit dans register_setup_cb().

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

Lie une fonction de rappel cb à invoquer lorsqu’un client ferme la connexion RTSP.

La fonction de rappel reçoit pathname et session comme décrit dans register_setup_cb().

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

Démarre l’exécution de la logique du rtsp_server et ne retourne pas.

image_callback est invoquée pour produire chaque trame et doit retourner un objet image.Image. Elle reçoit pathname et session comme décrit dans rtsp_server.register_setup_cb().

quality est la qualité de compression JPEG utilisée pendant la diffusion.