【问题标题】:cannot load a VIDEO with opencv c++无法使用 opencv c++ 加载视频
【发布时间】:2021-03-23 02:21:00
【问题描述】:

我正在尝试使用 VideoCapture 加载 C++ 中的视频(我使用的是 windows)...

视频名称为“A.avi”,路径为“C:\Users\anton\Desktop\eyeVideos”

在网上搜索发现路径应该是这样插入的:C:/Users/anton/Desktop/eyeVideos/

我使用的是我在网上找到的代码:

VideoCapture capture("C:/Users/anton/Desktop/eyeVideos/A.avi");
if(!capture.isOpened()){
std::`cout<<"cannot read video!\n";`
return -1;

}

问题是使用断点代码总是在此时停止cout&lt;&lt;"cannot read video!\n"; 我在 stackoverflow 上发现了一个类似的问题,但我不明白解决方案(抱歉,我是超级初学者) 提前致谢

这是getBuildInformation()的输出;

   General configuration for OpenCV 2.4.13.7 =====================================
  Version control:               unknown

  Platform:
    Timestamp:                   2020-12-10T20:59:23Z
    Host:                        Windows 10.0.19041 AMD64
    CMake:                       3.18.4
    CMake generator:             Ninja
    CMake build tool:            C:/DEV/vcpkg-master/downloads/tools/ninja/1.10.1-windows/ninja.exe
    MSVC:                        1916
    Configuration:               Debug

  C/C++:
    Built as dynamic libs?:      YES
    C++ Compiler:                C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe  (ver 19.16.27044.0)
    C++ flags (Release):         /nologo /DWIN32 /D_WINDOWS /W4 /utf-8 /GR /EHs /MP  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi  /wd4251 /wd4275 /wd4589 /wd4359 /MP4  /MD /O2 /Oi /Gy /DNDEBUG /Z7
    C++ flags (Debug):           /nologo /DWIN32 /D_WINDOWS /W4 /utf-8 /GR /EHs /MP  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi  /wd4251 /wd4275 /wd4589 /wd4359 /MP4  /D_DEBUG /MDd /Z7 /Ob0 /Od /RTC1
    C Compiler:                  C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe
    C flags (Release):           /nologo /DWIN32 /D_WINDOWS /W3 /utf-8 /MP   /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi    /MP4  /MD /O2 /Oi /Gy /DNDEBUG /Z7
    C flags (Debug):             /nologo /DWIN32 /D_WINDOWS /W3 /utf-8 /MP   /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi    /MP4  /D_DEBUG /MDd /Z7 /Ob0 /Od /RTC1
    Linker flags (Release):      /machine:x64  /nologo /DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF    /debug
    Linker flags (Debug):        /machine:x64  /nologo    /debug /INCREMENTAL
    ccache:                      NO
    Precompiled headers:         NO

  OpenCV modules:
    To be built:                 core flann imgproc highgui features2d calib3d ml video legacy objdetect photo gpu ocl nonfree contrib stitching superres ts videostab
    Disabled:                    world
    Disabled by dependency:      -
    Unavailable:                 androidcamera dynamicuda java python viz

  Windows RT support:            NO

  GUI:
    QT:                          NO
    Win32 UI:                    YES
    OpenGL support:              YES (opengl32 glu32)
    VTK support:                 NO

  Media I/O:
    ZLib:                        optimized C:/DEV/vcpkg-master/installed/x64-windows/lib/zlib.lib debug C:/DEV/vcpkg-master/installed/x64-windows/debug/lib/zlibd.lib (ver 1.2.11)
    JPEG:                        optimized C:/DEV/vcpkg-master/installed/x64-windows/lib/jpeg.lib debug C:/DEV/vcpkg-master/installed/x64-windows/debug/lib/jpegd.lib (ver )
    PNG:                         optimized C:/DEV/vcpkg-master/installed/x64-windows/lib/libpng16.lib debug C:/DEV/vcpkg-master/installed/x64-windows/debug/lib/libpng16d.lib (ver 1.6.37)
    TIFF:                        optimized C:/DEV/vcpkg-master/installed/x64-windows/lib/tiff.lib debug C:/DEV/vcpkg-master/installed/x64-windows/debug/lib/tiffd.lib optimized C:/DEV/vcpkg-master/installed/x64-windows/lib/lzma.lib debug C:/DEV/vcpkg-master/installed/x64-windows/debug/lib/lzmad.lib optimized C:/DEV/vcpkg-master/installed/x64-windows/lib/jpeg.lib debug C:/DEV/vcpkg-master/installed/x64-windows/debug/lib/jpegd.lib optimized C:/DEV/vcpkg-master/installed/x64-windows/lib/zlib.lib debug C:/DEV/vcpkg-master/installed/x64-windows/debug/lib/zlibd.lib (ver 42 - 4.1.0)
    JPEG 2000:                   NO
    OpenEXR:                     NO

  Video I/O:
    Video for Windows:           YES
    DC1394 1.x:                  NO
    DC1394 2.x:                  NO
    FFMPEG:                      NO
      avcodec:                   NO
      avformat:                  NO
      avutil:                    NO
      swscale:                   NO
      avresample:                NO
    OpenNI:                      NO
    OpenNI PrimeSensor Modules:  NO
    PvAPI:                       NO
    GigEVisionSDK:               NO
    DirectShow:                  YES
    Media Foundation:            YES
    XIMEA:                       NO
    Intel PerC:                  NO

  Other third-party libraries:
    Use IPP:                     NO
    Use Eigen:                   YES (ver 3.3.7)
    Use TBB:                     NO
    Use OpenMP:                  NO
    Use GCD                      NO
    Use Concurrency              YES
    Use C=:                      NO
    Use Cuda:                    NO
    Use OpenCL:                  YES

  OpenCL:
    Version:                     dynamic
    Include path:                C:/DEV/vcpkg-master/buildtrees/opencv2/src/2.4.13.7-64eb3208d2.clean/3rdparty/include/opencl/1.2
    Use AMD FFT:                 NO
    Use AMD BLAS:                NO

  Python:
    Interpreter:                 NO

  Java:
    ant:                         NO
    JNI:                         NO
    Java tests:                  NO

  Tests and samples:
    Tests:                       NO
    Performance tests:           NO
    C/C++ Examples:              NO

  Install path:                  C:/DEV/vcpkg-master/packages/opencv2_x64-windows/debug

  cvconfig.h is in:              C:/DEV/vcpkg-master/buildtrees/opencv2/x64-windows-dbg
-----------------------------------------------------------------


`

【问题讨论】:

  • 试试"C:\\Users\\anton\\Desktop\\eyeVideos\\A.avi"。说cout &lt;&lt; cv::getBuildInformation(); 并报告输出(视频I/O 部分最重要)。使用 ffmpeg 或其他合适的工具来确定 .avi 文件中使用的编解码器 (ffprobe A.avi)
  • 你好,它仍然无法运行 unsing ''C:\\Users\\anton\\Desktop\\eyeVideos\\A.avi"。getBuildInformation() 的输出在post..我该如何使用ffmpeg?

标签: c++ opencv video video-capture


【解决方案1】:

您的构建信息表明您的构建不使用 ffmpeg。我不知道 DirectShow 或 MSMF 是否足以读取视频(应该可以,但 OpenCV 可能只使用它来访问相机)。

您需要构建一个支持 FFMPEG 的 OpenCV。也许在opencv.org 官方下载是合适的。如果没有,您将需要自己构建 OpenCV。如果您使用的是 python,我会建议 pip install opencv-python,这是一个功能相当齐全的构建。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-11
    • 2015-09-11
    • 2018-10-15
    • 1970-01-01
    • 2021-03-22
    • 1970-01-01
    • 2017-04-05
    相关资源
    最近更新 更多