我正在使用Windows中的python OpenCV开发板识别软件,我需要从Raspberry Pi相机中获取流。
我准备好了Raspberry Pi,可以流式传输视频帧相机,并通过我的软件来获取它。但是通常我会出错并且流结束了。发生该错误时,我尝试自动重新连接。然后,如果开始时发生错误,则在发生错误后,软件可以正常工作。如果在软件运行过程中发生错误,则我的软件的CPU使用率过高并且没有响应。可以肯定的是,我尝试通过VLC播放器播放视频。有时,我无法理解。如果我可以得到流,则不会发生任何错误。在我的一些研究中,我发现该错误是由于Raspberry Pi停止流传输而发生的。但是我确保Raspberry Pi保持流式传输。
import time
import cv2
from imutils.video import videostream
cap = videostream.VideoStream(src='http://192.168.xxx.xxx:8160', framerate=2).start()
time.sleep(0.1)
while True:
try:
frame = cap.read()
if frame is None:
cap.stop()
cap = videostream.VideoStream(src='http://192.168.xxx.xxx:8160', framerate=2).start()
time.sleep(0.5)
continue
cv2.imshow('frame', frame)
except:
cap.stop()
cap = videostream.VideoStream(src='http://192.168.xxx.xxx:8160', framerate=2).start()
time.sleep(0.5)
continue
if cv2.waitKey(100) & 0xFF == ord('q'):
break
cv2.destroyAllWindows()
我需要获取流而没有任何错误。我的错误
[http @ 000001c46ff47040]流过早结束于0,应为18446744073709551615
警告:打开文件时出错(/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:856)
警告:http://192.168.xxx.xxx:8160(/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:857)
如何摆脱这个错误?
编辑: 我从here
学习了“如何将Raspberry Pi相机流式传输到另一台PC”答案 0 :(得分:0)
我得到了这个错误。我认为,请检查您的htop
以查看RAM存储空间。也许您的设备没有足够的RAM。我通过这种方式解决了我的问题。希望它有用。