rtsp — rtsp-Bibliothek

Das rtsp-Modul auf der OpenMV Cam ermöglicht es Ihnen, Video von Ihrer OpenMV Cam an jeden kompatiblen RTSP-Client (wie VLC) zu streamen.

Beispiel:

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)

Verbinden Sie einen Client mit rtsp://<camera-ip>:554/, um den Stream anzusehen.

class rtsp_server – rtsp_server-Klasse

Die rtsp_server-Klasse erstellt einen RTSP-Webserver mit einer einzelnen Verbindung auf Ihrer OpenMV Cam.

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

Erstellt einen an network_if gebundenen RTSP-Server.

network_if ist die Netzwerkmodul-Schnittstelle, die mit network.LAN(), network.WLAN() oder Ähnlichem erstellt wurde.

port ist der TCP-Port, auf dem gelauscht werden soll. Der Standard-RTSP-Port ist 554.

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

Bindet einen Callback cb, der aufgerufen wird, wenn ein Client eine RTSP-Verbindung einrichtet.

Der Callback erhält pathname (den angeforderten Pfad der Stream-Ressource, standardmäßig "/") und session (eine zufällige Session-ID).

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

Bindet einen Callback cb, der aufgerufen wird, wenn ein Client mit dem Streamen beginnt.

Der Callback erhält pathname und session wie in register_setup_cb() beschrieben.

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

Bindet einen Callback cb, der aufgerufen wird, wenn ein Client das Streamen pausiert.

Hinweis: Die Pause-Schaltfläche von VLC benachrichtigt den Server tatsächlich nicht.

Der Callback erhält pathname und session wie in register_setup_cb() beschrieben.

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

Bindet einen Callback cb, der aufgerufen wird, wenn ein Client die RTSP-Verbindung abbaut.

Der Callback erhält pathname und session wie in register_setup_cb() beschrieben.

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

Startet die Ausführung der rtsp_server-Logik und kehrt nicht zurück.

image_callback wird aufgerufen, um jedes Einzelbild zu erzeugen, und muss ein image.Image-Objekt zurückgeben. Es erhält pathname und session wie in rtsp_server.register_setup_cb() beschrieben.

quality ist die JPEG-Kompressionsqualität, die während des Streamens verwendet wird.