2012-01-01 91 views
3

我们可以在OpenCV中使用哪些视频格式?除AVI和摄像机负载之外,还可以使用其他任何东西吗? 如果这些是唯一支持的格式,则需要使用其他视频格式的视频转换器。在OpenCV中加载捕获

回答

1

我不确定它是如何最新的,但this OpenCV wiki page很好地概述了支持哪些编解码器。如果看起来AVI是唯一具有体面的跨平台支持的格式。您的选择是使用外部转换器(如您所建议的)执行转换,或者编写使用视频库加载图像的代码,并为数据创建相应的标头cv::MatIplImage *

除非您正在处理大量视频,否则我建议采取阻力最小的路径并将视频转换为AVI(有关OpenCV支持的详细信息,请参阅上面的链接)。只是要小心避免有损压缩:它会破坏大量的图像处理算法。

+1

链接的维基页面消失了,但存档位于[此处](https://web.archive.org/web/20130524095153/http://opencv.willowgarage.com/wiki/VideoCodecs)。 – chappjc 2014-09-30 01:21:48

0

OpenCV“农场外”视频编码和解码到其他库(例如,ffmpeg和VFW)。另外,请看highguidirectory以查看所有VideoCapture包装可用(特别注意cap_*实现)。 AVI只是一个容器,对于OpenCV可以读取的视频编解码器来说,并不是那么重要。 AVI可以包含几种不同的视频,音频,甚至是字幕流的组合。看到我的其他answer关于这一点。 Here也是一篇快速文章,解释容器和编解码器之间的差异。

因此,如果您在Linux上,请确保ffmpeg支持对您感兴趣的视频编解码器进行解码。您可以检查什么解压你的ffmpeg的版本,使用下面的命令支持:

ffmpeg -formats 

在Windows上,你要确保你有足够的可用解码各类像K-Lite Codec Pack视频的编解码器。