2017-03-01 51 views
0

我很(很不幸)對於Python和OpenCV都是全新的,但是我想使用OpenCV(3.2.0)和Python 2.7.13)綁定從.mp4文件中提取特定幀。使用openCV(3.2.0)無法讀取MP4文件 - Python(2.7.13)

我試圖按照「視頻入門」教程來學習如何播放視頻文件(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中,但它沒有幫助...請問您能幫我解決這個問題嗎?

請讓我知道如果你需要更多關於這個問題的信息,並抱歉如果我的問題是由於我失去了一些微不足道的東西。

非常感謝您提前!

阿德里安

回答

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文件的屬性。它的大小約爲16.5 MB (17,397,760 bytes),如果在Python 2.7的Win10 64位平臺上由VS2015編譯。

你的Python代碼可以在我的電腦上運行。從上面的問題,似乎你錯誤地將FFMPEG DLL複製到Python的目錄。