rtsp — knihovna rtsp

Modul rtsp na OpenMV Cam vám umožňuje streamovat video z vaší OpenMV Cam do libovolného kompatibilního RTSP klienta (jako je VLC).

Příklad:

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)

Pro zobrazení streamu připojte klienta k rtsp://<camera-ip>:554/.

třída rtsp_server – třída rtsp_server

Třída rtsp_server vytvoří na vaší OpenMV Cam webový RTSP server s jedním připojením.

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

Vytvoří RTSP server navázaný na network_if.

network_if je rozhraní síťového modulu vytvořené pomocí network.LAN(), network.WLAN() nebo podobně.

port je TCP port, na kterém se naslouchá. Výchozí RTSP port je 554.

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

Naváže callback cb, který se vyvolá, když klient naváže RTSP připojení.

Callback obdrží pathname (požadovanou cestu ke zdroji streamu, výchozí hodnota je "/") a session (náhodné id relace).

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

Naváže callback cb, který se vyvolá, když klient zahájí streamování.

Callback obdrží pathname a session, jak je popsáno v register_setup_cb().

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

Naváže callback cb, který se vyvolá, když klient pozastaví streamování.

Poznámka: Tlačítko pauzy ve VLC ve skutečnosti server neinformuje.

Callback obdrží pathname a session, jak je popsáno v register_setup_cb().

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

Naváže callback cb, který se vyvolá, když klient ukončí RTSP připojení.

Callback obdrží pathname a session, jak je popsáno v register_setup_cb().

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

Spustí běh logiky rtsp_server a nevrací se.

image_callback je vyvolán pro vytvoření každého snímku a musí vrátit objekt image.Image. Obdrží pathname a session, jak je popsáno v rtsp_server.register_setup_cb().

quality je kvalita JPEG komprese použitá během streamování.