2016-12-28 143 views
1

下載OpenCV源代碼時,無論是用於Windows還是用於Linux,sources目錄都只包含Windows已編譯的共享庫3rdparty/ffmpeg/opencv_ffmpeg.dll,這對於VideoCapture模塊可用於OpenCV的Python移植。使用`libopencv_ffmpeg.so`在Linux上構建OpenCV 2.4.11

在Linux中,由於未提供此文件,因此您希望在構建OpenCV時自動構建它,特別是在CMakeCache.txt中時,您可以找到行WITH_FFMPEG:BOOL=ON

它當然沒有建立...任何想法?

回答

1

找到了一個很好的解決方法 - 與所有人共享。

代替使用OpenCV的VideoCapture,我使用庫scikit-video

首先,安裝它(請確保安裝後期足夠的版本):

pip install sk-video 

然後,讀取視頻以下列方式:

import skvideo.io 


cap = skvideo.io.vreader(input_video_filepath) 
metadata = skvideo.io.ffprobe(input_video_filepath) 
framerate = metadata['video']['@r_frame_rate'] 

for frame in cap: 
    # Do whatever you want... 
    # "cap" is a generator, the for loop will simply end when there are no more frames 
    # "frame" is a NumPy array, just like in OpenCV's VideoCapture 

進一步文檔和例子都可以在這裏: http://www.scikit-video.org/stable/io.html