warning: Could not find codec parameters (../../modules/highgui/src/cap_ffmpeg_impl.hpp:540)

柔情痞子 提交于 2019-12-09 01:27:04

问题


I am trying to display the video feed from IP camera getting the following error

warning: Could not find codec parameters 

(../../modules/highgui/src/cap_ffmpeg_impl.hpp:540)

Here's the code for the same.

#include <stdio.h>
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv; 
using namespace std;
int main(int, char**) 
{ 
VideoCapture vcap; 
Mat image;
// This works on a D-Link CDS-932L
const string videoStreamAddress = "http://admin:admin123@172.41.20.55:80/?    action=stream?dummy=param.mjpg";//From mjpeg streamer
//const string videoStreamAddress = "http://192.168.1.13:8080/videofeed?   dummy=param.mjpg"; // Streaming from android using ip-cam

//open the video stream and make sure it's opened
if(!vcap.open(videoStreamAddress)) {


cout << "Error opening video stream or file" << std::endl;
return -1;
}

for(;;) {
if(!vcap.read(image)) {
    cout << "No frame" << std::endl;
    waitKey();
}
cv::imshow("Output Window", image);
    if(cv::waitKey(1) >= 0) break;
}
}

First i got different error so I installed K-Lite codec. Now I am getting this error. Can some one please tell me what is the error related to. I have gone through many post from stackoverflow and opencv also but could manage to get a satisfactory answer. Please help me. Thanks in advance.


回答1:


I was able to Solve the problem with the following code.

#include <stdio.h>
#include <opencv2/opencv.hpp>


int main(){

CvCapture *camera=cvCaptureFromFile("http://username:password@ipOfCamera/axis-cgi/mjpg/video.cgi?resolution=640x480&req_fps=30&.mjpg");
if (camera==NULL)
    printf("camera is null\n");
else
    printf("camera is not null");

cvNamedWindow("img");
while (cvWaitKey(10)!=atoi("q")){
    double t1=(double)cvGetTickCount();
    IplImage *img=cvQueryFrame(camera);
    /*if(img){
        cvSaveImage("C:/opencv.jpg",img);
    }*/
    double t2=(double)cvGetTickCount();
    printf("time: %gms  fps: %.2g\n",(t2-t1)/(cvGetTickFrequency()*1000.), 1000./((t2-t1)/(cvGetTickFrequency()*1000.)));
    cvShowImage("img",img);
}
cvReleaseCapture(&camera);
}

Would be good if it helps someone like me. Also Thanks @karlphillip for giving your time.




回答2:


Warnings are not errors! Relax.

In this case FFmpeg is complaining and not OpenCV. The reason is probably because the mjpg format that is specified on the URL doesn't really require an actual codec.



来源:https://stackoverflow.com/questions/20613453/warning-could-not-find-codec-parameters-modules-highgui-src-cap-ffmpeg-i

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!