萤石云获取图片的另一种方式

有些时候因为各种奇怪的原因导致不能获取萤石云的拍照预览,这里提供一个新的思路,可能稍微有点复杂,在找不到其它办法的时候可以考虑尝试这个方法,其它支持RTSP的摄像头也可以通过这个方法,同时也可以通过这个方法进行进一步的图像处理,譬如人脸识别等。
核心思路就是利用摄像头的RTSP通道获取视频流,通过视频流截取一张图片。具体Python代码如下:

import time
import cv2

ticks = time.time()
filename = "/var/www/html/autoPick/door" + str(ticks) + ".jpg"

cap = cv2.VideoCapture("rtsp://username:passwd@IP:554/Streaming/Channels/101?transportmode=unicast")
ret,frame = cap.read()
cv2.imwrite(filename, frame, [int( cv2.IMWRITE_JPEG_QUALITY), 80])

将以上代码放至服务器上,使用exec节点执行一下,或者使用Python3-function节点执行,即可获取图片。
当然服务器上首先安装一下Python和opencv for Python,怎么安装百度一堆,不再说明。
另外,萤石云可能会自动加密视频流,导致获取视频流错误,怎么关闭我在别的地方发了篇博文,需要的可以看看。关于如何取消萤石云视频加密