无法在Respberry Pi 4上使用opencv4.1.0-openvino打开IP摄像机

时间:2019-07-15 13:25:19

标签: opencv raspberry-pi ip-camera openvino

我需要使用树莓派4访问AXIS M1125网络摄像机的视频流。

我有一个适用于笔记本电脑和raspberry pi 3的代码。我使用opencv 4.1,它是针对raspbian的openvino发行版。

camera = cv2.VideoCapture('http://192.168.1.38/axis-cgi/jpg/image.cgi')

当我运行代码并调试OPENCV_VIDEOCAPTURE_DEBUG时,输出为:

[ WARN:0] VIDEOIO(FFMPEG): trying capture filename='http://192.168.1.38/mjpg/1/video.mjpg' ...
[ WARN:0] VIDEOIO(FFMPEG): backend is not available (plugin is missing, or can't be loaded due dependencies or it is not compatible)
[ WARN:0] VIDEOIO(GSTREAMER): trying capture filename='http://192.168.1.38/mjpg/1/video.mjpg' ...
(python3:6939): GStreamer-CRITICAL **: 14:32:38.521: 
Trying to dispose element appsink0, but it is in READY instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
...
[ WARN:0] VIDEOIO(GSTREAMER): can't create capture
[ WARN:0] VIDEOIO(V4L2): trying capture filename='http://192.168.1.38/mjpg/1/video.mjpg' ...
[ WARN:0] VIDEOIO(V4L2): can't create capture
[ WARN:0] VIDEOIO(CV_IMAGES): trying capture filename='http://192.168.1.38/mjpg/1/video.mjpg' ...
[ WARN:0] VIDEOIO(CV_IMAGES): created, isOpened=0
[ WARN:0] VIDEOIO(CV_MJPEG): trying capture filename='http://192.168.1.38/mjpg/1/video.mjpg' ...
[ WARN:0] VIDEOIO(CV_MJPEG): can't create capture

cv2.getBuildInformation()的输出:

Platform:
    Timestamp:                   2019-03-19T16:11:44Z
    Host:                        Linux 4.13.0-45-generic x86_64
    Target:                      Linux 1 arm
    CMake:                       3.7.2
    CMake generator:             Ninja
    CMake build tool:            /usr/bin/ninja
    Configuration:               Release

Video I/O:
    FFMPEG:                      YES
      avcodec:                   YES (57.64.101)
      avformat:                  YES (57.56.101)
      avutil:                    YES (55.34.101)
      swscale:                   YES (4.2.100)
      avresample:                NO
    GStreamer:                   YES (1.10.4)
    v4l/v4l2:                    YES (linux/videodev2.h)

2 个答案:

答案 0 :(得分:1)

不管OpenVINO的功能如何,它都可以由OpenCV处理。

import cv2
cap = cv2.VideoCapture("http://username:password@xxx.xxx.xxx.xxx:port/xxxx")
#cap = cv2.VideoCapture("http://username:password@xxx.xxx.xxx.xxx:port")
while(True):
ret, frame = cap.read()
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()

请参阅https://software.intel.com/en-us/forums/computer-vision/topic/801714

希望这会有所帮助。

答案 1 :(得分:0)

您是否已完成所有依赖项的安装?在/opt/intel/openvino/install_dependencies下。我还建议检查演示应用程序是否正在运行,但仍然存在问题。