如何解决解码MB 171、1,字节流-27时出错
我有一个应用程序,在其中我从海康威视摄像机读取了两个RTSP流,并进行处理。因为它是热像仪,所以有两个流,它有两个流,一个是普通流,另一个是热流。 这是我阅读流的方式:
import cv2
normal_path = "rtsp://adress@192.168.1.120/Streaming/channels/102"
thermal_path = "rtsp://adress@192.168.1.120/Streaming/channels/201"
normal_capture = cv2.VideoCapture(normal_path)
thermal_capture = cv2.VideoCapture(thermal_path)
while True:
try:
ret,thermal_frame = thermal_capture.read(0)
ret1,normal_frame = normal_capture.read(0)
#do a lot of things
except:
continue
normal_capture.release()
thermal_capture.release()
cv2.destroyAllWindows()
问题是,例如,一段时间后,在应用正常运行5个小时后,它会收到如下错误:
[h264 @ 0x2ac51c0] error while decoding MB 17 1,bytestream -27
有人知道为什么会这样吗?您知道为什么这个错误会超出try和except吗?
解决方法
我在使用单个流时遇到了同样的问题,尽管我遇到它的时间要早得多(进入流的几分钟)。我通过检查 ret
是否不是 True
来处理它
如果是,则重建流。
import cv2
thermal_path = "rtsp://adress@192.168.1.120/Streaming/channels/201"
thermal_capture = cv2.VideoCapture(thermal_path)
while True:
ret,thermal_frame = thermal_capture.read(0)
if not ret:
thermal_capture.release()
thermal_capture = cv2.VideoCapture(thermal_path)
print('Found error; rebuilding stream')
#do a lot of things
thermal_capture.release()
cv2.destroyAllWindows()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。