gpt4 book ai didi

c++ - CV::VideoCapture::open() 中的错误?

转载 作者:太空宇宙 更新时间:2023-11-03 22:53:54 33 4
gpt4 key购买 nike

我正在使用 CV::VideoCapture 从 IP 摄像机捕获帧。它大部分时间都有效,但有时会报告错误:

[mjpeg @ 0x233aea0] overread 8

当这个错误发生时,我的程序就停在那里了。 This可能会解释为什么。但是我怎样才能用 C++ 代码解决它呢? OpenCV 可以在不终止程序的情况下处理这个错误吗?

附注我发现如果我没有立即调用 CV::VideoCapture::read(),而是在 CV::VideoCapture::open() 之后等待一段时间,比如 60 秒,每次都出现这个错误!是 OpenCV 的 bug 吗?

#include <unistd.h>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

int main(int argc, char* argv[]) {
// argv[1] is a valid url, like "http://xxxx/mjpg/video.mjpg"
cv::VideoCapture cap(argv[1]);
if (!cap.isOpened()) {
std::cout << "Cannot Open Camera!" << std::endl;
return -1;
}
// The error occures if I pause for a while.
// But it is okay when I capture frames from video files intead of IP camera.
sleep(60);
while (static_cast<char>(cv::waitKey(1)) != 'q') {
cv::Mat frame;
cap >> frame;
if (frame.empty()) break;
cv::imshow("frame", frame);
}
}

最佳答案

我无法解释为什么要使用地址 http://xxxx/axis-cgi/mjpg/video.cgi 而不是 http://xxxx/mjpg/video。 mjpg 解决了!谁能在这里提供一些很好的解释或一些链接?谢谢!

关于c++ - CV::VideoCapture::open() 中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34225060/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com