我有一个连接到视频采集卡 (AverMedia Game Broadcaster HD) 的 GoPro Hero 3+(黑色)。我只是想在 OpenCV 中获取视频流。使用罗技网络摄像头没有任何问题。使用的代码如下。
VideoCapture cap;
cap.open(0);
waitKey(300);
//cap.set(CV_CAP_PROP_FRAME_WIDTH, 1280);
//cap.set(CV_CAP_PROP_FRAME_HEIGHT, 720);
if (cap.isOpened()){
cout << "Cam identified" << endl;
}
namedWindow("dst", 1);
while (1){
Mat frame;
if (!cap.read(frame)) {
std::cout << "Unable to read frame from video stream" << std::endl;
continue;
}
imshow("dst", frame);
[...]
}
Run Code Online (Sandbox Code Playgroud)
使用 GoPro 会发生以下情况:OpenCV 能够打开 VideoCapture(“已识别摄像头”)但无法读取任何帧(只有灰色屏幕和输出:“无法从视频流中读取帧”)。我还用 frame.empty(); 检查了这一点。
我知道视频采集卡工作正常,因为 Unity 使用 GoPro 流打开了一个 WebCamTexture,没有任何问题。我阅读了 OpenCv 中的编解码器问题,因此我已经尝试使用 FFMPEG 支持编译 OpenCV。现在可以显示 GoPro 录制的 MP4 视频,但流仍然不起作用。
我使用 OpenCV 2.48、Windows 7 …