rtsp --- ไลบรารี rtsp¶
โมดูล rtsp บน OpenMV Cam ช่วยให้คุณสตรีมวิดีโอจาก OpenMV Cam ไปยัง RTSP client ที่รองรับ (เช่น 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)
เชื่อมต่อ client ไปที่ rtsp://<camera-ip>:554/ เพื่อดูสตรีม
class rtsp_server -- คลาส rtsp_server¶
คลาส rtsp_server สร้าง RTSP web server แบบเชื่อมต่อเดียวบน OpenMV Cam ของคุณ
- class rtsp.rtsp_server(network_if: Any, port: int = 554)¶
สร้าง RTSP server ที่ผูกกับ
network_ifnetwork_ifคือออบเจกต์อินเทอร์เฟซโมดูลเครือข่ายที่สร้างจากnetwork.LAN(),network.WLAN()หรือที่คล้ายกันportคือพอร์ต TCP ที่ต้องการรอรับการเชื่อมต่อ พอร์ต RTSP เริ่มต้นคือ 554- register_setup_cb(cb: Callable[[str, int], None]) None¶
ผูกคอลแบ็ก
cbให้ถูกเรียกเมื่อ client ตั้งค่าการเชื่อมต่อ RTSPคอลแบ็กจะได้รับ
pathname(พาธของทรัพยากรสตรีมที่ขอ ค่าเริ่มต้นคือ"/") และsession(session id แบบสุ่ม)
- register_play_cb(cb: Callable[[str, int], None]) None¶
ผูกคอลแบ็ก
cbให้ถูกเรียกเมื่อ client เริ่มสตรีมคอลแบ็กจะได้รับ
pathnameและsessionตามที่อธิบายในregister_setup_cb()
- register_pause_cb(cb: Callable[[str, int], None]) None¶
ผูกคอลแบ็ก
cbให้ถูกเรียกเมื่อ client หยุดสตรีมชั่วคราวหมายเหตุ: ปุ่มหยุดชั่วคราวของ VLC จะไม่แจ้ง server จริงๆ
คอลแบ็กจะได้รับ
pathnameและsessionตามที่อธิบายในregister_setup_cb()
- register_teardown_cb(cb: Callable[[str, int], None]) None¶
ผูกคอลแบ็ก
cbให้ถูกเรียกเมื่อ client ยกเลิกการเชื่อมต่อ RTSPคอลแบ็กจะได้รับ
pathnameและsessionตามที่อธิบายในregister_setup_cb()
- stream(image_callback: Callable[[str, int], image.Image], quality: int = 90) None¶
เริ่มรัน logic ของ
rtsp_serverและจะไม่ returnimage_callbackถูกเรียกเพื่อสร้างแต่ละเฟรม และต้องคืนค่าออบเจกต์image.Imageโดยจะได้รับpathnameและsessionตามที่อธิบายในrtsp_server.register_setup_cb()qualityคือคุณภาพการบีบอัด JPEG ที่ใช้ขณะสตรีม