作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在下载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
关于c++ - 使用 `libopencv_ffmpeg.so` 在 Linux 上构建 OpenCV 2.4.11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41359013/
在下载OpenCV源码时,无论是Windows版还是Linux版,sources目录下都只包含Windows已经编译好的共享库3rdparty/ffmpeg/opencv_ffmpeg.dll,这是必
我是一名优秀的程序员,十分优秀!