我一直在审查这个问题的大量类似问题,但我恐怕我无法弄清楚为什么我无法在opencv中打开文件
我有一个文件“small.avi”,这是我从互联网上获得的“small.mp4”的重新编码。我用ffmpeg -i small.mp4 small.avi重新编码了,我做了这个,因为我无法打开mp4文件,并且在网上建议先尝试avi格式。
这是我的代码(主要是从教程中复制而来,用几行来显示一些相关信息):
import cv2
import os
for _, __, files in os.walk("."):
for file in files:
print file
print ""
cap = cv2.VideoCapture("small.mp4")
print cap.isOpened()
print cap.open("small.avi")
i = 0
while cap.isOpened() and i < 10:
i += 1
ret, frame = cap.read()
print "read a frame"
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame', gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
这会产生以下输出:
"A:\Program Files\AnacondaPY\Anaconda\python.exe" A:/Documents/Final/VideoProcessor.py
small.avi
small.mp4
VideoProcessor.py
False
False
Process finished with exit code 0
我的程序似乎没有正确打开任何一个文件。遵循
的建议Can not Read or Play a Video in OpenCV+Python using VideoCapture
和
Cannot open ".mp4" video files using OpenCV 2.4.3, Python 2.7 in Windows 7 machine,
我发现我的cv2版本为3.0.0,转到
A:\下载\的OpenCV \建立\ 86 \ VC12 \ BIN
并将文件opencv_ffmpeg300.dll复制到
A:\ Program Files \ AnacondaPY \ Anaconda
尽管如此,代码仍无法成功打开视频文件。我甚至尝试过x64版本,并尝试命名文件opencv_ffmpeg.dll,opencv_ffmpeg300.dll和opencv_ffmpeg300_64.dll(对于x64版本)。还有什么我可以尝试解决这个问题吗?
感谢您的帮助
答案 0 :(得分:0)
如果您从menpo(或默认conda)频道下载opencv(使用'conda install --channel https://conda.anaconda.org/menpo opencv3' ),它可能无法正常工作,因为某些视频处理依赖项如ffmpeg不存在。
您需要从'conda-forge'频道下载opencv,其中包含用于视频处理的最新和附加软件包和依赖项。请尝试以下方法:
conda install -c conda-forge ffmpeg
conda install -c conda-forge opencv
这里-c告诉频道使用'conda-forge'。