2016-12-28 91 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