rtsp — rtsp 라이브러리

OpenMV Cam의 rtsp 모듈은 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 클래스는 OpenMV Cam에서 단일 연결 RTSP 웹 서버를 생성합니다.

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

network_if 에 바인딩된 RTSP 서버를 생성합니다.

network_ifnetwork.LAN(), network.WLAN() 또는 유사한 함수로 생성된 네트워크 모듈 인터페이스입니다.

port 는 수신 대기할 TCP 포트입니다. 기본 RTSP 포트는 554입니다.

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

클라이언트가 RTSP 연결을 설정할 때 호출될 콜백 cb 를 바인딩합니다.

콜백은 pathname (요청된 스트림 리소스 경로, 기본값은 "/")과 session (무작위 세션 id)을 받습니다.

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

클라이언트가 스트리밍을 시작할 때 호출될 콜백 cb 를 바인딩합니다.

콜백은 register_setup_cb() 에서 설명한 대로 pathnamesession 을 받습니다.

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

클라이언트가 스트리밍을 일시 중지할 때 호출될 콜백 cb 를 바인딩합니다.

참고: VLC의 일시 중지 버튼은 실제로 서버에 알리지 않습니다.

콜백은 register_setup_cb() 에서 설명한 대로 pathnamesession 을 받습니다.

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

클라이언트가 RTSP 연결을 종료할 때 호출될 콜백 cb 를 바인딩합니다.

콜백은 register_setup_cb() 에서 설명한 대로 pathnamesession 을 받습니다.

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

rtsp_server 로직 실행을 시작하며 반환하지 않습니다.

image_callback 은 각 프레임을 생성하기 위해 호출되며 image.Image 객체를 반환해야 합니다. 이 콜백은 rtsp_server.register_setup_cb() 에서 설명한 대로 pathnamesession 을 받습니다.

quality 는 스트리밍 중에 사용되는 JPEG 압축 품질입니다.