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_ifは、network.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()で説明されているとおりpathnameとsessionを受け取ります。
- register_pause_cb(cb: Callable[[str, int], None]) None¶
クライアントがストリーミングを一時停止したときに呼び出されるコールバック
cbをバインドします。注意: VLC の一時停止ボタンは実際にはサーバーに通知しません。
コールバックは
register_setup_cb()で説明されているとおりpathnameとsessionを受け取ります。
- register_teardown_cb(cb: Callable[[str, int], None]) None¶
クライアントが RTSP 接続を破棄したときに呼び出されるコールバック
cbをバインドします。コールバックは
register_setup_cb()で説明されているとおりpathnameとsessionを受け取ります。
- stream(image_callback: Callable[[str, int], image.Image], quality: int = 90) None¶
rtsp_serverのロジックの実行を開始し、戻りません。image_callbackは各フレームを生成するために呼び出され、image.Imageオブジェクトを返す必要があります。これはrtsp_server.register_setup_cb()で説明されているとおりpathnameとsessionを受け取ります。qualityはストリーミング中に使用される JPEG 圧縮品質です。