You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenVINO环境下Movidius NCS1无法读取IP摄像头的解决方法

解决OpenVINO环境下无法读取RTSP摄像头流的问题

这问题我之前帮朋友排查过类似的,核心原因大概率是OpenVINO自带的OpenCV版本没有启用RTSP/FFmpeg支持——毕竟OpenVINO打包的OpenCV主要是为了推理优化,会砍掉一些非必需的视频解码功能,而你普通用户环境里的OpenCV是完整安装的,自带了FFmpeg解码,所以能正常读取RTSP流。

下面是具体的排查和解决步骤:

1. 先确认问题根源

激活你的OpenVINO环境,运行以下命令查看OpenCV的编译配置:

python -c "import cv2; print(cv2.getBuildInformation())"

在输出里找到FFmpeg相关的部分,如果显示Disabled,那就是问题所在——这个OpenCV版本不支持RTSP流解码。

2. 解决方案:替换/重装带FFmpeg支持的OpenCV

你有几个可选方案,按操作复杂度从低到高排序:

方案一:在OpenVINO环境中重新安装完整OpenCV

这是最简单的方法,直接用pip覆盖OpenVINO自带的简化版OpenCV:
激活OpenVINO环境后,运行:

pip install opencv-python

安装完成后,再运行你的测试代码,应该就能正常读取RTSP流了。

方案二:调用系统中已有的完整OpenCV

如果你不想在OpenVINO环境里重装OpenCV,可以让Python优先加载普通用户环境里的完整OpenCV:

  1. 先在普通用户环境中运行以下命令,获取OpenCV的安装路径:
    python -c "import cv2; print(cv2.__file__)"
    
    输出类似/usr/local/lib/python3.9/dist-packages/cv2这样的路径。
  2. 在你的代码开头添加以下内容,让Python先加载这个路径下的OpenCV:
    import sys
    # 替换成你刚才获取的路径
    sys.path.insert(0, '/usr/local/lib/python3.9/dist-packages')
    import cv2
    
    这样就能绕过OpenVINO自带的简化版OpenCV,直接用完整版本。

方案三:编译带FFmpeg支持的OpenCV(适合进阶用户)

如果上面两种方法都不适用,你可以手动编译OpenCV并启用FFmpeg支持:

  1. 先安装FFmpeg依赖:
    sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libavutil-dev
    
  2. 下载OpenCV源码,cmake时指定启用FFmpeg:
    cmake -DWITH_FFMPEG=ON -DCMAKE_INSTALL_PREFIX=/path/to/openvino/env/lib/python3.x/site-packages ..
    
  3. 编译并安装,替换OpenVINO环境中的OpenCV。

3. 额外调试建议

  • 把你代码里注释掉的print语句打开,或者添加状态检查,比如先确认摄像头流是否成功打开:
    cap = cv2.VideoCapture('rtsp://admin:sphbr7410@192.168.240.151:554/cam/realmonitor?channel=1&subtype=0')
    if not cap.isOpened():
        print("无法打开RTSP流,请检查地址或网络连接")
        exit()
    
  • 可以暂时清空OpenVINO的环境变量测试,比如运行unset LD_LIBRARY_PATH后再执行代码,排除库冲突的问题。

内容的提问来源于stack exchange,提问作者Jasar Orion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 06:37:39