rtsp --- مكتبة rtsp

تتيح لك وحدة rtsp على OpenMV Cam بث الفيديو من جهاز OpenMV Cam الخاص بك إلى أي عميل RTSP متوافق (مثل VLC).

مثال:

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)

وصّل عميلًا بـ rtsp://<camera-ip>:554/ لعرض البث.

class rtsp_server -- فئة rtsp_server

تنشئ الفئة rtsp_server خادم ويب RTSP أحادي الاتصال على جهاز OpenMV Cam الخاص بك.

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

ينشئ خادم RTSP مرتبطًا بـ network_if.

network_if هي واجهة وحدة الشبكة المنشأة من network.LAN() أو network.WLAN() أو ما شابه.

port هو منفذ TCP الذي يُستمع عليه. منفذ RTSP الافتراضي هو 554.

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

يربط دالة رد نداء cb لتُستدعى عندما يقوم عميل بإعداد اتصال RTSP.

تتلقى دالة رد النداء pathname (مسار مورد البث المطلوب، ويكون افتراضيًا "/") و session (معرّف جلسة عشوائي).

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

يربط دالة رد نداء cb لتُستدعى عندما يبدأ عميل في البث.

تتلقى دالة رد النداء pathname و session كما هو موضح في register_setup_cb().

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

يربط دالة رد نداء cb لتُستدعى عندما يوقف عميل البث مؤقتًا.

ملاحظة: زر الإيقاف المؤقت في VLC لا يُشعر الخادم فعليًا.

تتلقى دالة رد النداء pathname و session كما هو موضح في register_setup_cb().

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

يربط دالة رد نداء cb لتُستدعى عندما يفكك عميل اتصال RTSP.

تتلقى دالة رد النداء pathname و session كما هو موضح في register_setup_cb().

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

يبدأ تشغيل منطق rtsp_server ولا يعود.

يُستدعى image_callback لإنتاج كل إطار ويجب أن يعيد كائن image.Image. يتلقى pathname و session كما هو موضح في rtsp_server.register_setup_cb().

quality هي جودة ضغط JPEG المستخدمة أثناء البث.