我正在使用openCV阅读视频文件,我使用以下简单代码来执行此操作。
std::string arg = argv[1];
VideoCapture capture(arg); //try to open string, this will attempt to open it as a video file
if (!capture.isOpened()) {
cerr << "Failed to open video file!\n" << endl;
help(argv);
system("Pause");
return 1;
}
我可以加载和操作多个视频,但我遇到其他问题。我想这归结于编解码器问题。我可以使用旧式win媒体播放器播放视频,因此编解码器在系统上,但我想在opencv中没有?
有谁知道opencv上肯定会播放哪些编解码器和视频格式?将视频转换为这些格式有什么好的选择?
非常感谢
答案 0 :(得分:1)
实际上,支持的OpenCV编解码器取决于您的平台和可用的编解码器。
本教程Creating a video with OpenCV清楚地解释了OpenCV的视频编解码器。虽然它用于编写视频,但我认为基本原理与阅读视频相同。
函数C++: double VideoCapture::get(int propId)
可以通过设置propId = CV_CAP_PROP_FOURCC
来检索已加载视频的编解码器属性。 FOURCC的解释可以在site找到。如果您在阅读.avi视频时遇到问题,很可能是您的平台中未安装代码。