cv2.videoCapture 仅返回“uri 中缺少端口”

Nat*_*nto 2 python opencv video-capture stream

首先感谢您的关注。我正在尝试使用 opencv 和 ip 摄像头进行流式传输,但它只返回“[tcp @ 000001d5fce13580] uri 中缺少端口”。我已经在 VLC 上进行了测试,并且还使用 JavaCV 进行了测试,它适用于两者。我已经检查过 MPEG 了,没问题。有没有人经历过这个并且可以提供帮助?

我和:

  • WIN10
  • OpenCV 4.5.1

代码:

import numpy as np
import cv2


def runCam():
    print(cv2.getBuildInformation())
    video_src = "rtsp://admin:myPWCam@192.168.1.223:554/Streaming/channels/1/"
    cap = cv2.VideoCapture(video_src, cv2.CAP_FFMPEG)

    while True:
        ret, frame = cap.read()
        try:
            cv2.resizeWindow('Stream IP Camera OpenCV', 120300, 800)
            cv2.imshow('Stream IP Camera OpenCV', frame)
        except Exception as ex:
            template = "An exception of type {0} occurred. Arguments:\n{1!r}"
            message = template.format(type(ex).__name__, ex.args)
            print(message)
            break

        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

    cap.release()
    cv2.destroyAllWindows()


runCam()

Run Code Online (Sandbox Code Playgroud)

OPENCV 构建信息:https://gist.github.com/nathancn/745f543e3a6cd13d012855759bd0940d

我使用海康威视网络摄像机型号 DS-2CD2621G0-IS

返回错误: 在此输入图像描述

Nat*_*nto 6

解决

问题出在我的密码上,由于某种原因,当密码包含“#”时,opencv 的 VideoCapture 会变得混乱。当我在 javacv 和 VLC 中测试它并且它有效时,我没有用另一个密码测试它并浪费了很多时间:( 但现在我发现我更改了密码并且它已经有效了。我希望它对那些人有帮助有同样问题的人要注意特殊密码字符。