python opencv读取mp4文件错误(已解决)
https://stackoverflow.com/questions/31040746/cant-open-video-using-opencvhttps://docs.opencv.org/4.5.2/dd/d43/tutorial_py_video_display.htmlhttps://www.codenong.com/49299328/
以前都是直接opencv读取视频流(usb摄像头或者是rtsp视频流),这次第一次使用opencv读取本地视频文件,然后报错,在这里记录一下。
🤓1. 解决方式
1.1 尝试4 ✅
根据stack overflow的回答-Cannot open “.mp4” video files using OpenCV 2.4.3, Python 2.7 in Windows 7 machine
考虑寻找opencv中的一个和ffmpeg相关的dll文件——opencv_ffmpeg<version>.dll
由于我是使用anaconda安装的,所以去寻找的时候发现和opencv相关的文件夹有3个,其中包含dll文件的就只有cv2这个文件夹:
|--site-packages
|--cv2
|-- opencv_videoio_ffmpeg452_64.dll
|--opencv_contrib_python-4.5.2.52.dist-info
|--opencv_python-4.5.2.52.dist-info
将这个dll文件放在自己脚本的同级目录下,运行即可。(与视频文件是.avi还是.mp4无关)
|-- XXX_read_video.py
|-- opencv_videoio_ffmpeg452_64.dll
👑2. 无效解决
2.1 尝试1
安装一个opencv相关的包:
pip install opencv-contrib-python
# 提示以及安装过了,无效
安装此软件包,它将在opencv中启用ffmpeg。
2.2 尝试2
使用视频文件的绝对路径,无效
cap = cv2.VideoCapture("C:/investigate/led_digit_MoNi/video/2.avi")
2.3 尝试3
重新安装opencv,配置ffmpeg。首先需要检查,opencv中的ffmpeg配置是否正确
import cv2
print(cv2.getBuildInformation())
会输出很多opencv与系统相关的配置信息,
> General configuration for OpenCV 4.5.2 =====================================
Version control: 4.5.2
Platform:
Timestamp: 2021-05-07T08:28:36Z
Host: Windows 10.0.17763 AMD64
CMake: 3.18.4
CMake generator: Visual Studio 14 2015 Win64
CMake build tool: MSBuild.exe
MSVC: 1900
Configuration: Debug Release
> Video I/O:
DC1394: NO
FFMPEG: YES (prebuilt binaries)
avcodec: YES (58.91.100)
avformat: YES (58.45.100)
avutil: YES (56.51.100)
swscale: YES (5.7.100)
avresample: YES (4.0.0)
GStreamer: NO
DirectShow: YES
Media Foundation: YES
DXVA: YES
可以看到,其实是支持了ffmpeg的
参考:
- https://stackoverflow.com/questions/31040746/cant-open-video-using-opencv
- https://docs.opencv.org/4.5.2/dd/d43/tutorial_py_video_display.html
- https://www.codenong.com/49299328/
- https://www.jb51.net/article/152219.htm
- https://stackoverflow.com/questions/13834399/cannot-open-mp4-video-files-using-opencv-2-4-3-python-2-7-in-windows-7-machi
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)