OpenCV流式网络摄像机始终返回False

时间:2018-07-25 10:54:44

标签: python opencv video-capture ip-camera

到目前为止,我已经使用OpenCV从Raspberry pi + pi摄像机流化ip摄像机。我想使用编解码器H.264从ip摄像机保存视频,但无法正常工作。我从这篇帖子https://github.com/skvark/opencv-python/issues/100中发现,该帖子告诉我只有手动构建的opencv库才能支持H264编解码器。 因此,我按照此链接手动构建了opencv https://www.learnopencv.com/install-opencv3-on-ubuntu/,并成功了。 但是当我使用手动构建的opencv时,我无法再访问我的IP摄像机 cap.open()始终返回None。这是我的代码:

import cv2
cap = cv2.VideoCapture("http://10.10.1.240:8081/")
while True:
    ret, frame = cap.read()
    frame2 = cv2.flip(frame, 1)
    cv2.imshow("frame2", frame)
    key = cv2.waitKey(25)
    if key == 27:
        break
cap.release()
cv2.destroyAllWindows()

在上面的代码中, ret始终为False 。 我被困在这里两天了,没有真正的解决方案和解释。任何帮助都将得到帮助,谢谢!

2 个答案:

答案 0 :(得分:0)

  

但是当我使用手动构建的opencv时,我无法再访问我的IP摄像机,cap.open()始终不返回任何内容。

您是否尝试过从源代码构建opencv后检查您的IP摄像机是否正常工作并出现在网络上?从源代码关闭opencv后,您是否尝试使用任何媒体播放器从相机中播放视频?

就您的代码而言,请为cv2.VideoCapture尝试以下格式

cap = cv2.VideoCapture()
cap.open("rtsp://yourusername:yourpassword@172.16.30.248:555/Streaming/channels/2/")

您的IP摄像机的用户名-用户名。 给定用户名的yourpassword-password。

您也可以尝试以下方法。

cv2.VideoCapture("rstp://admin:PASSWORD@192.168.1.64/doc/page/previw.asp")

谢谢。

答案 1 :(得分:0)

确保计算机和摄像机的IP地址在同一子网掩码中。