MaixCAM MaixPy 视频流 RTSP 推流
2024-05-20
更新历史
| 日期 | 版本 | 作者 | 更新内容 |
|---|---|---|---|
| 2024-05-20 | 1.0.0 | lxowalle | 初版文档 |
简介
本文档提供通过RTSP推流摄像头画面的方法
使用方法
from maix import time, rtsp, camera, image
cam = camera.Camera(2560, 1440, image.Format.FMT_YVU420SP)
server = rtsp.Rtsp()
server.bind_camera(cam)
server.start()
print(server.get_url())
while True:
time.sleep(1)
步骤:
导入time、rtsp、camera和image模块
from maix import time, rtsp, camera, image初始化摄像头
cam = camera.Camera(2560, 1440, image.Format.FMT_YVU420SP) # 初始化摄像头,输出分辨率2560x1440 NV21格式- 注意RTSP模块目前只支持NV21格式, 因此摄像头需要配置为NV21格式输出
初始化并启动Rtsp对象
server = rtsp.Rtsp() server.bind_camera(cam) server.start()server = rtsp.Rtsp()用来创建一个Rtsp对象server.bind_camera(cam)用来绑定一个Camera对象, 绑定后原Camera对象将不能再使用server.start()用来启动rtsp推流
打印当前RTSP流的URL
print(server.get_url())server.get_url()用来获取RTSP的播放地址。
完成,运行上须代码后, 你可以通过VLC软件播放视频流, 已测试的
VLC版本是3.0.20. 默认播放地址为rtsp://设备的ip:8554/live
支持推流音频
MaixPy支持同时推送音视频流, 通过绑定一个Recorder对象后可以在推送视频流的同时附带音频数据
注:MaixPy v4.7.8之后的版本支持该方法(不包括v4.7.8)
参考代码如下:
from maix import time, rtsp, camera, image, audio
cam = camera.Camera(640, 480, image.Format.FMT_YVU420SP)
audio_recorder = audio.Recorder()
server = rtsp.Rtsp()
server.bind_camera(cam)
server.bind_audio_recorder(audio_recorder)
server.start()
print(server.get_url())
while True:
time.sleep(1)
上文中通过audio.Recorder()创建一个audio_recorder对象,并使用Rtsp的bind_audio_recorder()方法绑定该对象, 使用ffplay rtsp://设备的ip:8554/live命令或者vlc 3.0.20就能接收音视频数据了