最近有抽取视频帧的需求,因此安装了opencv,直接去读取视频,发现一直打不开.
具体原因:
机器上没有相应的解码器;
官方说明:
解决方案:
1.把D:\openCV\opencv\sources\3rdparty\ffmpeg\opencv_ffmpeg_64.dll复制到D:\Python下;
2.把opencv_ffmpeg_64.dll重命名为opencv_ffmpeg300_64.dll;
说明:
1.上面的是我的安装路径,可以参考着找到相应的文件进行操作;
2.我的系统是64位,python版本为2.7.10,opencv版本为3.0,因此在opencv_ffmpeg_64后面加入的是300,后面加的数字是opencv版本号;
参考文献:OpenCV 2.4 VideoCapture not working on Windows
主要代码:
import numpy as np import cv2 cap = cv2.VideoCapture('1.mp4') c = 1 while(cap.isOpened()): ret, frame = cap.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.imshow('frame',gray) cv2.imwrite('image/'+str(c) + '.jpg',frame) #存储为图像 c = c+1 if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows()