rtsp
— rtsp库¶
OpenMV Cam上的 rtsp
模块允许您将视频从OpenMV Cam流式传输到任何兼容的RTSP客户端(如 VLC)。
如何使用该库¶
请查看OpenMV IDE中的示例脚本,位于 Web Servers
下。
rtsp_server
非常易于使用。创建后,您只需使用回调函数调用 rtsp_server.stream()
方法来生成图像对象。例如:
network_if = network.WLAN(network.STA_IF)
network_if.active(True)
network_if.connect('your-ssid', 'your-password')
while not network_if.isconnected():
print("Trying to connect. Note this may take a while...")
time.sleep_ms(1000)
server = rtsp.rtsp_server(network_if)
server.stream(lambda pathname, session: sensor.snapshot())
请注意,并非所有RTSP客户端都能解码流式传输的所有类型的JPEG图像。为获得最佳效果,请使用OV2640/OV5640摄像头模块的 sensor.JPEG
模式来流式传输RTSP JPEG 视频。
class rtsp_server - rtsp_server 类¶
rtsp_server
类在您的OpenMV Cam上创建一个单连接的RTSP Web服务器。
构造函数¶
- class rtsp.rtsp_server(network_if, port=554)¶
创建一个WiFi
rtsp
服务器。network_if
是从network.LAN()
、network.WLAN()
等创建的网络模块接口。port
是要使用的端口号。默认的RTSP端口是554。方法¶
- register_setup_cb(cb)¶
将回调函数(
cb
)绑定到当客户端与rtsp_server
建立RTSP连接时执行。注册回调函数不是
rtsp_server
工作的必需条件。回调函数应该接受两个参数:
pathname
是客户端想要的流资源的名称。如果不需要,可以忽略这一点。否则,您可以使用它来确定要返回的图像对象。默认情况下,pathname
将为”/”。session
是一个随机数,在建立新连接时会更改。您可以将session
与字典一起使用,以区分对同一pathname
的不同访问。
- register_play_cb(cb)¶
将回调函数(
cb
)绑定到当前客户端想要开始流式传输时执行。注册回调函数不是
rtsp_server
工作的必需条件。回调函数应该接受两个参数:
pathname
是客户端想要的流资源的名称。如果不需要,可以忽略这一点。否则,您可以使用它来确定要返回的图像对象。默认情况下,pathname
将为”/”。session
是一个随机数,在建立新连接时会更改。您可以将session
与字典一起使用,以区分对同一pathname
的不同访问。
- register_pause_cb(cb)¶
将回调函数(
cb
)绑定到当客户端想要暂停流式传输时执行。注册回调函数不是
rtsp_server
工作的必需条件。注意:在 VLC 上单击暂停按钮不会告诉服务器暂停。
回调函数应该接受两个参数:
pathname
是客户端想要的流资源的名称。如果不需要,可以忽略这一点。否则,您可以使用它来确定要返回的图像对象。默认情况下,pathname
将为”/”。session
是一个随机数,在建立新连接时会更改。您可以将session
与字典一起使用,以区分对同一pathname
的不同访问。
- register_teardown_cb(cb)¶
将回调函数(
cb
)绑定到当前客户端想要拆除与rtsp_server
的RTSP连接时执行。注册回调函数不是
rtsp_server
工作的必需条件。回调函数应该接受两个参数:
pathname
是客户端想要的流资源的名称。如果不需要,可以忽略这一点。否则,您可以使用它来确定要返回的图像对象。默认情况下,pathname
将为”/”。session
是一个随机数,在建立新连接时会更改。您可以将session
与字典一起使用,以区分对同一pathname
的不同访问。
- stream(cb, quality=90)¶
启动
rtsp_server
逻辑并且不返回。在调用此方法之前,请确保首先设置好一切。一旦调用,rtsp_server
将开始接受连接并流式传输视频数据。cb
应该是一个回调函数,返回一个Image
对象,RTSP库将对其进行jpeg压缩并流式传输到远程客户端。您可以在返回图像对象之前自由修改sensor.snapshot()
图像。quality
是在流式传输时使用的JPEG压缩质量。回调函数应该接受两个参数:
pathname
是客户端想要的流资源的名称。如果不需要,可以忽略这一点。否则,您可以使用它来确定要返回的图像对象。默认情况下,pathname
将为”/”。session
是一个随机数,在建立新连接时会更改。您可以将session
与字典一起使用,以区分对同一pathname
的不同访问。