Windows10下Ultralytics YOLOv5无法打开RTSP流问题求助
YOLOv5 detect.py无法打开RTSP流排查与解决
问题描述
Windows10系统下搭建Python3.9环境,安装YOLOv5的requirements.txt后,可通过--source 0调用本地摄像头完成推理,但无法打开VLC可正常播放的RTSP流。报错指向utils/datasets.py第309行:OpenCV无法初始化VideoCapture。
已尝试以下操作但未解决:
- 指定FFMPEG后端:
cap = cv2.VideoCapture(rtsp_path, cv2.CAP_FFMPEG) - 预设置UDP传输环境变量:
os.environ["OPENCV_FFMPEG_CAPTURE_OPTIONS"] = "rtsp_transport;udp"
怀疑是环境兼容性问题,寻求解决方案。
环境详情
Conda依赖配置
channels: - pytorch - defaults dependencies: - blas=1.0=mkl - ca-certificates=2021.10.26=haa95532_2 - certifi=2021.10.8=py39haa95532_0 - cudatoolkit=10.2.89=h74a9793_1 - freetype=2.10.4=hd328e21_0 - intel-openmp=2021.4.0=haa95532_3556 - jpeg=9b=hb83a4c4_2 - libpng=1.6.37=h2a8f88b_0 - libtiff=4.2.0=hd0e1b90_0 - libuv=1.40.0=he774522_0 - libwebp=1.2.0=h2bbff1b_0 - lz4-c=1.9.3=h2bbff1b_1 - mkl=2021.4.0=haa95532_640 - mkl-service=2.4.0=py39h2bbff1b_0 - mkl_fft=1.3.1=py39h277e83a_0 - mkl_random=1.2.2=py39hf11a4ad_0 - ninja=1.10.2=py39h559b2a2_3 - numpy=1.21.2=py39hfca59bb_0 - numpy-base=1.21.2=py39h0829f74_0 - olefile=0.46=pyhd3eb1b0_0 - openssl=1.1.1l=h2bbff1b_0 - pillow=8.4.0=py39hd45dc43_0 - pip=21.2.4=py39haa95532_0 - python=3.9.7=h6244533_1 - pytorch=1.9.0=py3.9_cuda10.2_cudnn7_0 - pytorch-mutex=1.0=cuda - setuptools=58.0.4=py39haa95532_0 - six=1.16.0=pyhd3eb1b0_0 - sqlite=3.37.0=h2bbff1b_0 - tk=8.6.11=h2bbff1b_0 - torchaudio=0.9.0=py39 - torchvision=0.10.0=py39_cu102 - typing_extensions=3.10.0.2=pyh06a4308_0 - tzdata=2021e=hda174b7_0 - vc=14.2=h21ff451_1 - vs2015_runtime=14.27.29016=h5e58377_2 - wheel=0.37.1=pyhd3eb1b0_0 - wincertstore=0.2=py39haa95532_2 - xz=5.2.5=h62dcd97_0 - zlib=1.2.11=h8cc25b3_4 - zstd=1.4.9=h19a0ad4_0
Pip安装包列表
absl-py==1.0.0 cachetools==4.2.4 charset-normalizer==2.0.10 colorama==0.4.4 cycler==0.11.0 fonttools==4.28.5 google-auth==2.3.3 google-auth-oauthlib==0.4.6 grpcio==1.43.0 idna==3.3 importlib-metadata==4.10.0 kiwisolver==1.3.2 markdown==3.3.6 matplotlib==3.5.1 oauthlib==3.1.1 opencv-python==4.5.5.62 packaging==21.3 pandas==1.3.5 protobuf==3.19.3 pyasn1==0.4.8 pyasn1-modules==0.2.8 pyparsing==3.0.6 python-dateutil==2.8.2 pytz==2021.3 pyyaml==6.0 requests==2.27.1 requests-oauthlib==1.3.0 rsa==4.8 scipy==1.7.3 seaborn==0.11.2 tensorboard==2.7.0 tensorboard-data-server==0.6.1 tensorboard-plugin-wit==1.8.1 thop==0.0.31-2005241907 tqdm==4.62.3 urllib3==1.26.8 werkzeug==2.0.2 zipp==3.7.0
OpenCV编译信息
版本控制: 4.5.5 平台: 时间戳: 2021-12-28T06:21:01Z 主机: Windows 10.0.17763 AMD64 CMake: 3.22.1 CMake生成器: Visual Studio 14 2015 CMake构建工具: MSBuild.exe MSVC: 1900 配置: Debug Release CPU/HW特性: 基线: SSE SSE2 SSE3 请求: SSE3 分发代码生成: SSE4_1 SSE4_2 FP16 AVX AVX2 请求: SSE4_1 SSE4_2 AVX FP16 AVX2 AVX512_SKX SSE4_1 (16个文件): + SSSE3 SSE4_1 SSE4_2 (1个文件): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 (0个文件): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX AVX (4个文件): + SSSE3 SSE4_1 POPCNT SSE4_2 AVX AVX2 (31个文件): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2 C/C++: 构建为动态库?: NO C++标准: 11 C++编译器: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe (版本 19.0.24245.0) C++编译选项(Release): /DWIN32 /D_WINDOWS /W4 /GR /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /MP /MT /O2 /Ob2 /DNDEBUG C++编译选项(Debug): /DWIN32 /D_WINDOWS /W4 /GR /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /MP /MTd /Zi /Ob0 /Od /RTC1 C编译器: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe C编译选项(Release): /DWIN32 /D_WINDOWS /W3 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /MP /MT /O2 /Ob2 /DNDEBUG C编译选项(Debug): /DWIN32 /D_WINDOWS /W3 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /MP /MTd /Zi /Ob0 /Od /RTC1 链接器选项(Release): /machine:x64 /NODEFAULTLIB:atlthunk.lib /INCREMENTAL:NO /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:libcpmtd.lib /NODEFAULTLIB:msvcrtd.lib 链接器选项(Debug): /machine:x64 /NODEFAULTLIB:atlthunk.lib /debug /INCREMENTAL /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcpmt.lib /NODEFAULTLIB:msvcrt.lib ccache: NO 预编译头: YES 额外依赖: wsock32 comctl32 gdi32 ole32 setupapi ws2_32 第三方依赖: libprotobuf ade ittnotify libjpeg-turbo libwebp libpng libtiff libopenjp2 IlmImf zlib quirc ippiw ippicv OpenCV模块: 待构建: calib3d core dnn features2d flann gapi highgui imgcodecs imgproc ml objdetect photo python3 stitching video videoio 已禁用: world 因依赖禁用: - 不可用: java python2 ts 应用: - 文档: NO 非免费算法: NO Windows RT支持: NO GUI: WIN32UI Win32 UI: YES VTK支持: NO 媒体I/O: ZLib: 构建版本(1.2.11) JPEG: 构建-libjpeg-turbo(2.1.2-62) WEBP: 构建版本(编码器: 0x020f) PNG: 构建版本(1.6.37) TIFF: 构建版本(42 - 4.2.0) JPEG 2000: 构建版本(2.4.0) OpenEXR: 构建版本(2.3.0) HDR: YES SUNRASTER: YES PXM: YES PFM: YES 视频I/O: DC1394: NO FFMPEG: YES(预编译二进制文件) avcodec: YES(58.134.100) avformat: YES(58.76.100) avutil: YES(56.70.100) swscale: YES(5.9.100) avresample: YES(4.0.0) GStreamer: NO DirectShow: YES Media Foundation: YES DXVA: YES 并行框架: Concurrency 追踪: YES(基于Intel ITT) 其他第三方库: Intel IPP: 2020.0.0 Gold [2020.0.0] 路径: D:/a/opencv-python/opencv-python/_skbuild/win-amd64-3.6/cmake-build/3rdparty/ippicv/ippicv_win/icv Intel IPP IW: 源码(2020.0.0) 路径: D:/a/opencv-python/opencv-python/_skbuild/win-amd64-3.6/cmake-build/3rdparty/ippicv/ippicv_win/iw Lapack: NO Eigen: NO 自定义HAL: NO Protobuf: 构建版本(3.19.1) OpenCL: YES(NVD3D11) 包含路径: D:/a/opencv-python/opencv-python/opencv/3rdparty/include/opencl/1.2 链接库: 动态加载 Python 3: 解释器: C:/hostedtoolcache/windows/Python/3.6.8/x64/python.exe(版本3.6.8) 库: C:/hostedtoolcache/windows/Python/3.6.8/x64/libs/python36.lib(版本3.6.8) numpy: C:/hostedtoolcache/windows/Python/3.6.8/x64/lib/site-packages/numpy/core/include(版本1.13.3) 安装路径: python/cv2/python-3 构建用Python: C:/hostedtoolcache/windows/Python/2.7.18/x64/python.exe Java: ant: NO JNI: C:/hostedtoolcache/windows/Java_Temurin-Hotspot_jdk/8.0.312-7/x64/include C:/hostedtoolcache/windows/Java_Temurin-Hotspot_jdk/8.0.312-7/x64/include/win32 C:/hostedtoolcache/windows/Java_Temurin-Hotspot_jdk/8.0.312-7/x64/include Java包装器: NO Java测试: NO 安装路径: D:/a/opencv-python/opencv-python/_skbuild/win-amd64-3.6/cmake-install
解决建议
降级OpenCV版本:当前
opencv-python==4.5.5.62在Windows环境下对RTSP的支持存在兼容性问题,建议降级到4.5.4.60,执行命令:pip install opencv-python==4.5.4.60 --force-reinstall强制使用TCP传输:部分设备/服务器对UDP支持不佳,修改传输协议为TCP:
os.environ["OPENCV_FFMPEG_CAPTURE_OPTIONS"] = "rtsp_transport;tcp" cap = cv2.VideoCapture(rtsp_path, cv2.CAP_FFMPEG)或显式设置参数:
cap = cv2.VideoCapture(rtsp_path, cv2.CAP_FFMPEG) cap.set(cv2.CAP_PROP_RTSP_TRANSPORT, cv2.CAP_RTSP_TRANSPORT_TCP)校验RTSP URL格式:确保地址完整,包含必要的用户名、密码,格式示例:
rtsp://admin:123456@192.168.1.100:554/main,部分设备需指定具体流路径。更换为opencv-contrib-python:安装包含额外模块的OpenCV版本,修复部分底层兼容问题:
pip uninstall opencv-python pip install opencv-contrib-python==4.5.4.60指定系统FFmpeg路径:若本地安装了独立FFmpeg,添加其路径到环境变量,确保OpenCV调用正确的库:
import os
相关产品推荐
相关产品推荐

