视频流是由一块ESP32-CAM开发板提供的,通过网页调试工具,我们可以轻松获取到视频流地址是http://xxx.xxx.xxx.xxx:81/stream。摄像头的控制都是使用get方法完成的。比如设置视频流分辨率,用的是get http://xxx.xxx.xxx.xxx/control?var=framesize&val=7,改变后面的数字就可以改变分辨率。目前7对应的是800*480,我觉得比较适中。
我写了一个类,用以下方法就可以开启视频流:
```
def stream_start(self, _size = None):
if not _size:
_size = self._size
requests.get(self._url+"/control?var=framesize&val=" + str(_size))
self._cap = cv2.VideoCapture(self._strem_url)
def stream(self, _show = False, _save = False):
self._cap.set(cv2.CAP_PROP_POS_FRAMES,-1)
self._cap.grab()
_capture = self._cap.retrieve()
_capture
if _save:
cv2.imwrite("stream.jpg", _capture[1])
if _show:
cv2.imshow("stream", _capture[1])
cv2.waitKey(1)
return _capture
```