如何从视频中快速提取帧内(在C ++或Python中)
how to rapidly extract intraframe from a video (in c++ or python)
我想从视频中捕获一些帧,所以我使用了这样的命令:
ffmpeg -i MyVideo.mp4 -ss 1:20:12 -vframes 1 test-pic.jpg
但是FFMPEG从视频开始处理帧,所以这个命令太慢了。 我研究并找到了一些关于关键帧的文章,所以我尝试通过这样的命令提取关键帧
ffmpeg -vf select="eq(pict_type,PICT_TYPE_I)" -i MyVideo.mp4 -vsync 2 -s 160x90 -f image2 thumbnails-%02d.jpeg
但此命令也是减慢和捕获太多帧。我需要 linux 命令或 c++ 或 python 代码来捕获不需要很长时间的帧
ffmpeg wiki 关于快速搜索的声明:
-ss 参数需要在 -i 之前指定:
ffmpeg -ss 00:03:00 -i 冥界.觉醒.avi -帧:v 1 out1.jpg
此示例将在某个地方生成一个图像帧 (out1.jpg) 电影开头的第三分钟。输入将是 使用关键帧解析,速度非常快。缺点是它 还将在某些关键帧处完成搜索,不一定位于 在指定时间 (00:03:00),因此搜索不会那么准确 不出所料。
您还可以使用混合模式,将快速搜索和慢速(解码)查找相结合,这是一种中间立场。
如果要在 C/C++ 中实现这一点,请参阅 ffmpeg 的docs/examples
目录以开始使用和av_seek_frame
。
我最近破解了一些C代码来自己做缩略图,它有效地使用了混合模式。可能对您有帮助,也可能没有帮助。
你好,安德森先生。
我不熟悉使用C++或Python来做这样的事情。 我确信这是可能的(如果我研究了一个小时,我可能会很好地了解如何做到这一点),但是实施完整解决方案所需的时间可能超过寻找更好的帧捕获程序的时间成本。 经过一番谷歌搜索,我想出了:
- 虚拟配音
- 卡姆塔西亚
- 帧拍摄
相关文章:
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- Pybind11:将元组列表从Python传递到C++
- 如何在c++中使用引用实现类似python的行为
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 递归列出所有目录中的C++与Python与Ruby的性能
- IPC使用多个管道和分支进程来运行Python程序
- 从python中调用C++函数并获取返回值
- Python 3.7 和 excess_args 的 SWIG 问题
- Python中的for循环与C++有何不同
- 如何在c++中录制具有精确帧时间戳的视频
- 使用Pybind11向Python公开Eigen::张量
- Python str to C++ to Python str
- 如何使用Python从C++中读取谷物序列化数据
- 如何在C++中使用pybind11加载一个pickle python列表
- 如何在c++中使用system()来运行包含空格的python脚本
- python集合的C++等价物是什么.计数器
- OPENCV VIDEOCAPTURE说视频有0帧(C 和Python)
- 如何从视频中快速提取帧内(在C ++或Python中)
- 无法在opencv中从C++打开视频.它在python中工作
- 使用Python/ c++ /Java流媒体直播视频到网页的最佳方法