【发布时间】:2017-09-28 14:06:33
【问题描述】:
我一直在为这个问题审查大量类似的问题,但恐怕我无法弄清楚为什么我无法在 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:\Downloads\opencv\build\x86\vc12\bin
并将文件opencv_ffmpeg300.dll复制到
A:\Program Files\AnacondaPY\Anaconda
尽管如此,代码仍然没有成功打开视频文件。我什至尝试了 x64 版本,并尝试命名文件 opencv_ffmpeg.dll、opencv_ffmpeg300.dll 和 opencv_ffmpeg300_64.dll(用于 x64 版本)。还有什么我可以尝试解决的吗?
感谢您的帮助
【问题讨论】:
-
我在这里建议你两件事:首先尝试从终端而不是 Anaconda 运行你的 python 脚本。其次尝试使用视频文件的完整路径而不是
"small.mp4"
标签: python opencv video ffmpeg