python - 如何从具有 mkv 扩展名的视频中提取关键帧
问题描述
我想从视频中提取关键帧,为此我尝试了以下方法:
- 绕过帧
- 在 Matlab 上绕过帧
- 使用武士刀提取关键帧
- 在 Python 中使用绝对直方图差分提取关键帧。
但是我对哪种方式继续进行感到困惑,因为有多种方式!
我制作数据集的视频也在MKV format
. 虽然我已经将视频转换为帧,但为了提取关键帧,Matlab
两者Python
都无法处理MKV
.
所以我需要将它转换为其他格式,例如mp4
and avi
。我已经通过使用在线转换器完成了此操作,但我的代码仍然无法处理该视频,并且我的计算机被绞死了。
解决方案
使用 ffmpeg 怎么样?它支持 mkv 容器。
https://superuser.com/questions/669716/how-to-extract-all-key-frames-from-a-video-clip
一个例子:
ffmpeg -skip_frame nokey -i video.mkv -vsync 0 -r 30 -f image2 thumbnails-%02d.jpeg
或 .png 等
然后阅读这些图像并做你想做的事。
ffmpeg 也有 python 包装器:https ://github.com/kkroening/ffmpeg-python
推荐阅读
- python-3.x - 为什么这个除法的结果是“inf”?
- docker - ARG 值是否传递给使用 RUN 执行的脚本
- jenkins - 从 jenkins 扩展选择参数中获取源值
- ruby - 我想在 ruby 编程语言中使用 twitter api 以文本而不是对象获取以下列表
- python - 系统中的“/usr/local/cuda”和 conda 环境中的“cudatoolkit”之间的使用优先级是什么?
- python - 为什么 np.unint8 和 np.int8 释放内存,而任何其他 numpy 格式都没有?
- jenkins - 用于修改 Jenkins 节点标签的 Groovy 脚本
- mongodb - 使用objectID中的时间戳从文档的最后n分钟获取mongoexport数据?
- c - 升序数组中的这个左值错误有什么问题?
- java - 如何转义特殊的正则表达式字符?