有人测试了从视频中提取帧的最快方法吗?
- 的 Aforge
- Emgu CV(OpenCV)
- 的 AVIFILE
- 的的ffmpeg
使用哪种格式的视频和编解码器?
假设我需要捕捉全高清视频文件(1920 x 1080)的随机帧 超过10毫秒......有可能吗?
我试过用Aforge和Avifile库做这件事。 如果您提取帧1,2,3,4,5,...
,则可以但是如果你想要这样的随机帧1,2,200,40000,......有时需要500毫秒。 (在指针找到流中的位置之前)。
任何建议都将不胜感激。
答案 0 :(得分:1)
访问随机帧的关键因素是使用的编解码器,它的时间压缩,寻找I帧的能力,你可以寻找最近的I帧而不是精确到你感兴趣的时间戳。由于时间压缩,你可能需要[通常内部和透明地对你,但这显然增加了处理开销]寻求最近的关键帧,并且它们从那里逐帧前进到请求的位置。
AForge,EmguCV,OpenCV只是直接使用文件的API之上的包装器,因此它们不能最快(它们是底层访问方法+额外开销)。对于给定的格式/编解码器,FFmpeg和Windows API(AVIFile,DirectShow,Media Foundation)可能会更好或更差,具体取决于实现的质量。