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 المستخدمة أثناء البث.