微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

解码MB 171、1,字节流-27时出错

如何解决解码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 举报,一经查实,本站将立刻删除。