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

OpenCV中VideoCapture.isOpened()始终返回false问题求助

OpenCV VideoCapture无法打开本地MP4文件(isOpened()返回false)

问题场景

执行步骤:

  • 进入~/Projects/git-repo/opencv/test/目录执行cmake .
  • 执行make命令
  • 运行./PlayVideo程序
    程序输出:error reading video file

相关代码

PlayVideo.cpp

#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>

#include<iostream>

int main(void) {

    cv::VideoCapture capVideo;


    capVideo.open("/home/fateme/Projects/git-repo/opencv/test/osm.mp4");

    if (!capVideo.isOpened()) {                                                 // if unable to open video file
        std::cout << "\nerror reading video file" << std::endl << std::endl;      // show error message

        return(0);                                                              // and exit program
    }

 }

CMakeLists.txt

cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( PlayVideo PlayVideo.cpp )
target_link_libraries( PlayVideo ${OpenCV_LIBS} )

排查与解决步骤

1. 验证视频文件本身

  • 用ls /home/fateme/Projects/git-repo/opencv/test/osm.mp4确认文件存在,路径拼写无错误
  • 用系统播放器(如VLC)打开该视频,确认文件未损坏、格式可正常解析

2. 检查OpenCV的视频编解码器支持

OpenCV依赖FFmpeg等后端处理视频,若编译时未启用相关组件会导致读取失败:

  • 执行opencv_version --verbose,查看输出中是否包含FFmpeg: YES,以及H.264等MP4常用编解码器的支持信息
  • 若缺少编解码器,需重新编译OpenCV,cmake阶段添加-DWITH_FFMPEG=ON参数

3. 调整路径与权限

  • 尝试改用相对路径./osm.mp4,避免绝对路径的拼写或权限问题
  • 执行chmod +r /home/fateme/Projects/git-repo/opencv/test/osm.mp4,确保当前用户有文件读取权限

4. 极简代码测试

编写最小化测试代码,排除其他逻辑干扰:

#include <opencv2/opencv.hpp>
#include <iostream>

int main() {
    cv::VideoCapture cap("./osm.mp4");
    if (!cap.isOpened()) {
        std::cout << "无法打开视频" << std::endl;
        return -1;
    }
    std::cout << "视频打开成功" << std::endl;
    cap.release();
    return 0;
}

重新编译运行,验证基础读取功能是否正常

5. 确认CMake编译配置

  • 查看cmake执行时的输出,确认find_package(OpenCV REQUIRED)成功找到正确版本的OpenCV库
  • 若使用自定义编译的OpenCV,需确保CMAKE_PREFIX_PATH指向正确的OpenCV安装目录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 21:35:55