rtsp — biblioteca rtsp

Modulul rtsp de pe OpenMV Cam vă permite să transmiteți flux video de la OpenMV Cam către orice client RTSP compatibil (precum VLC).

Exemplu:

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)

Conectați un client la rtsp://<camera-ip>:554/ pentru a vizualiza fluxul.

clasa rtsp_server – clasa rtsp_server

Clasa rtsp_server creează pe OpenMV Cam un server web RTSP cu o singură conexiune.

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

Creează un server RTSP legat la network_if.

network_if este interfața modulului de rețea creată din network.LAN(), network.WLAN() sau similar.

port este portul TCP pe care se ascultă. Portul RTSP implicit este 554.

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

Leagă o funcție de retroapelare (callback) cb care să fie invocată atunci când un client configurează o conexiune RTSP.

Funcția de retroapelare primește pathname (calea resursei de flux solicitate, implicit "/") și session (un id de sesiune aleatoriu).

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

Leagă o funcție de retroapelare (callback) cb care să fie invocată atunci când un client începe transmiterea fluxului.

Funcția de retroapelare primește pathname și session așa cum este descris în register_setup_cb().

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

Leagă o funcție de retroapelare (callback) cb care să fie invocată atunci când un client întrerupe transmiterea fluxului.

Notă: butonul de pauză din VLC nu notifică efectiv serverul.

Funcția de retroapelare primește pathname și session așa cum este descris în register_setup_cb().

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

Leagă o funcție de retroapelare (callback) cb care să fie invocată atunci când un client închide conexiunea RTSP.

Funcția de retroapelare primește pathname și session așa cum este descris în register_setup_cb().

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

Pornește rularea logicii rtsp_server și nu se întoarce.

image_callback este invocată pentru a produce fiecare cadru și trebuie să returneze un obiect image.Image. Primește pathname și session așa cum este descris în rtsp_server.register_setup_cb().

quality este calitatea de compresie JPEG folosită în timpul transmiterii fluxului.