使用 `libopencv_ffmpeg.so` 在 Linux 上构建 OpenCV 2.4.11

Building OpenCV 2.4.11 on Linux with `libopencv_ffmpeg.so`

下载OpenCV源码时,无论是Windows还是Linux,sources目录只包含Windows已经编译好的共享库3rdparty/ffmpeg/opencv_ffmpeg.dll ,这对于 VideoCapture 模块在 OpenCV 的 Python 移植上工作是必不可少的。

在 Linux 中,由于没有提供此文件,您希望在构建 OpenCV 时自动构建它,尤其是在 CMakeCache.txt 中,您可以发现行 WITH_FFMPEG:BOOL=ON.

当然没有建...有什么想法吗?

找到了一个很好的解决方法 - 与大家分享。

我没有使用 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