我们可以在OpenCV中使用哪些视频格式?除了AVI和从摄像头加载之外,还可以使用其他东西吗?如果只有这些格式受支持,则需要视频转换器才能使用其他视频格式。
发布于 2012-01-02 00:08:14
我不确定它是否最新,但this OpenCV wiki page很好地概述了支持哪些编解码器。如果看起来AVI是唯一具有良好跨平台支持的格式。您可以选择使用外部转换器进行转换(按照您的建议),或者编写使用视频库加载图像并为数据创建适当的cv::Mat
或IplImage *
头的代码。
除非你正在处理大量的视频,否则我建议采用阻力最小的方法,将视频转换为AVI (有关OpenCV支持的详细信息,请参阅上面的链接)。只是要小心避免有损压缩:它会破坏很多图像处理算法。
发布于 2012-01-02 03:31:05
OpenCV将视频编码和解码“外包”给其他库(例如,ffmpeg和VFW)。此外,还可以查看highgui
源代码directory以查看所有可用的VideoCapture
包装器(特别要注意cap_*
实现)。AVI仅仅是一个容器,对于OpenCV可以读取的视频编解码器来说,它并不是那么关键。AVI可以包含视频、音频甚至字幕流的几种不同组合。有关这一点,请查看我的另一个answer。Here也是一篇快速文章,解释了容器和编解码器之间的区别。
因此,如果您使用的是Linux,请确保ffmpeg支持对您感兴趣的视频编解码器进行解码。您可以使用以下命令查看您的ffmpeg版本支持哪些编解码器:
ffmpeg -formats
在Windows上,你需要确保你有足够的编解码器来解码各种类型的视频,比如K-Lite Codec Pack。
https://stackoverflow.com/questions/8693975
复制相似问题