Opencv 视频捕获的永久修复

2025-03-04 08:24:00
admin
原创
99
摘要:问题描述:这个问题已在许多网站上多次提出,但没有明确的解决方案。我正在尝试使用以下函数运行带有视频的 Opencv:import cv2 cap = cv2.VideoCapture('video.mp4') if(cap.isOpened()==False): print "Error openi...

问题描述:

这个问题已在许多网站上多次提出,但没有明确的解决方案。我正在尝试使用以下函数运行带有视频的 Opencv:

import cv2
cap = cv2.VideoCapture('video.mp4')
if(cap.isOpened()==False):
print "Error opening camera"

但每次都失败了。我尝试了各个网站上的几乎所有步骤,但都无法让它工作(包括单独重建 ffmpeg)。

任何帮助都将非常感激。

我的平台是Ubuntu17和Python3。


解决方案 1:

这个答案是针对 Linux 和 Python 编写的,但总体思路可以应用于 OpenCV 支持的任何操作系统和语言。

课堂VideoCapture无法打开视频文件的原因有很多,但以下三种适用于大多数情况。

OpenCV FFMPEG 支持:

默认情况下,OpenCV 使用 ffmpeg 读取视频文件。OpenCV 可能未使用 FFMPEG 支持构建。要确定 OpenCV 是否使用 FFMPEG 支持构建,请在终端中输入:

python -c "import cv2; print(cv2.getBuildInformation())" | grep -i ffmpeg

输出应该是这样的:

FFMPEG:是的

如果输出是,No则按照在线指南从源代码构建支持 ffmpeg 的 OpenCV。

FFMPEG 编解码器:

FFMPEG 可能没有您特定文件的编解码器。我们将使用此视频作为示例,以显示 FFMPEG 是否具有对此文件的解码能力。

首先,我们需要找到此视频文件使用的编码格式。我们将使用该mediainfo程序。在终端中输入:

mediainfo video_file.mp4

在输出中,在视频标题下,查找格式。在本例中,使用的视频编码是AVC,这是 H264 的另一个名称。

图片

现在,我们尝试查找 FFMPEG 是否支持解码AVC编码文件的编解码器。在终端中:

ffmpeg -codecs | grep -i avc

在我的计算机上,输出是:

DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (解码器:h264 h264_crystalhd h264_vdpau) (编码器:libx264 libx264rgb)

我们对DEV感兴趣,它代表解码、编码和视频。这意味着AVC是一种视频编码格式,FFMPEG 支持这种格式的编码和解码功能。

文件路径

最后,检查文件路径是否正确,或者文件是否存在。

解决方案 2:

我按照链接中的步骤操作

上面链接中的 Cmake 命令如下所示,其作用如下。

cmake -DWITH_CUDA=OFF -DBUILD_TIFF=ON -DBUILD_opencv_java=ON -DWITH_FFMPEG=ON -DBUILD_opencv_python3=ON -DENABLE_AVX=ON -DWITH_OPENGL=ON -DWITH_OPENCL=ON -DWITH_IPP=ON -DWITH_TBB=ON -DWITH_EIGEN=ON -DWITH_V4L=ON -DWITH_VTK=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DBUILD_opencv_python2=OFF -DCMAKE_INSTALL_PREFIX=$(python3 -c "import sys; print(sys.prefix)") -DPYTHON3_EXECUTABLE=$(which python3) -DPYTHON3_INCLUDE_DIR=$(python3 -c "从 distutils.sysconfig 导入 get_python_inc;打印(get_python_inc())")-DPYTHON3_PACKAGES_PATH=$(python3 -c "从 distutils.sysconfig 导入 get_python_lib;打印(get_python_lib())")-D CMAKE_BUILD_TYPE=RELEASE-D CMAKE_INSTALL_PREFIX=/usr/local-D INSTALL_PYTHON_EXAMPLES=ON-D INSTALL_C_EXAMPLES=OFF-D PYTHON_EXECUTABLE=/home/user/anaconda3/bin/python-D BUILD_EXAMPLES=ON-DCMAKE_BUILD_TYPE=RELEASE..

我不太熟悉 OpenCV 的构建,但确切的PYTHON_EXECUTABLE=/home/user/anaconda3/bin/python路径是我认为需要更新特定 Python 的 OpenCV 绑定的依据

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   3983  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   2747  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Freshdesk、ClickUp、nTask、Hubstaff、Plutio、Productive、Targa、Bonsai、Wrike。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在项目管理过程中面临着诸多痛点,如任务分配不...
项目管理系统   82  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Monday、TeamGantt、Filestage、Chanty、Visor、Smartsheet、Productive、Quire、Planview。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多项目经理和团队在管理复杂项目时,常...
开源项目管理工具   90  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Smartsheet、GanttPRO、Backlog、Visor、ResourceGuru、Productive、Xebrio、Hive、Quire。在当今快节奏的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在选择项目管理工具时常常面临困惑:...
项目管理系统   79  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用