目标: 实现从海康威视摄像头读取视频数据并导出为jpg图片接口
import:
numpy,cv2,PIL,io
技能点:
- cv2.VideoCapture cap
- PIL.Image img
- io.BytesIO
流程
-
链接摄像头
url = “rtsp://用户名:密码@ip:端口/摄像头配置参数”
cap = cv2.VideoCapture(url,)
这里需要注意下摄像头配置参数
我的是"/Streaming/Channels/设备通道值0清晰度编号"
通道值为1, 清晰度编号为1 的url如下
“/Streaming/Channels/201” -
读取视频帧
ret, frame = cap.read() -
将视频帧转为图片
outbuff = io.BytesIO()
img = Image.fromarray(np.uint(frame))
img.save(outbuff, format=‘JPEG’) -
图片数据
outbuff.getbuffer()
s = str(base64.b64encode(outbuff.getbuffer()), encoding=‘utf-8’)
顺便转为base64格式: ‘data:image/jpeg;base64,{img}’.format(img=s)
完整代码:
def urlformat(self, kwargs):
return '