无法使用openCV(3.2.0)读取MP4文件 - Python(2.7.13)

时间:2017-03-01 01:30:52

标签: python-2.7 opencv mp4

我(不幸的是)我对Python和OpenCV都是全新的,但我想使用OpenCV(3.2.0)和Python(2.7.13)绑定从.mp4文件中提取特定的帧。

我尝试按照“视频入门”教程学习如何播放视频文件(http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_gui/py_video_display/py_video_display.html),但即使我能够VideoCapture(0)(即流式传输网络摄像头),我无法播放视频文件(mp4):我使用了以下代码“Untitled.py”:

import numpy as np 
import cv2

cap = cv2.VideoCapture('PathToVideoFile\film.mp4')
while(cap.isOpened()): 
    ret, frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    cv2.imshow('frame',gray)
    if cv2.waitKey(25) & 0xFF == ord('q'):
        break

cap.release() 
cv2.destroyAllWindows()

这就是我得到的:

================== RESTART: C:\Python27\Scripts\Untitled.py ==================

(没有别的......)

我下载了ffmpeg并将opencv\build\x64\vc14\bin中的opencv_ffmpeg320_64.dll复制到C:\Python27但它没有帮助......你可以帮我解决这个问题吗?

如果您需要有关该问题的更多信息,请告诉我,如果我的问题是由于我遗漏了一些微不足道的事情,请告诉我。

非常感谢你!

阿德里安

1 个答案:

答案 0 :(得分:0)

摄像机捕获输出为RGB,与播放视频文件的格式不同。视频文件通常是压缩的,需要正确的编解码器才能解码。

如果opencv_ffmpeg320_64.dll不在%OPENCV_DIR%\bin,则视频播放将无效。对于OPENCV_DIR环境变量设置,下面是示例并且是您安装的主题。

  • OPENCV_DIR=C:\Program Files\OpenCV 3.2.0\x64\vc14
  • Path=%OPENCV_DIR%\bin;%Path%

同时检查opencv_ffmpeg320_64.dll文件的属性。如果在VS10的Win10 64位平台上由VS2015编译,其大小约为16.5 MB (17,397,760 bytes)

您的Python代码可以在我的电脑上运行。从上面的问题,似乎你错误地将FFMPEG DLL复制到Python的目录。