Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 警告:找不到编解码器参数(../../modules/highgui/src/cap\u ffmpeg\u impl.hpp:540)_C++_Opencv_Video_Ip Camera - Fatal编程技术网

C++ 警告:找不到编解码器参数(../../modules/highgui/src/cap\u ffmpeg\u impl.hpp:540)

C++ 警告:找不到编解码器参数(../../modules/highgui/src/cap\u ffmpeg\u impl.hpp:540),c++,opencv,video,ip-camera,C++,Opencv,Video,Ip Camera,我试图显示来自IP摄像头的视频源,出现以下错误 warning: Could not find codec parameters (../../modules/highgui/src/cap_ffmpeg_impl.hpp:540) 这是同样的代码 #include <stdio.h> #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespac

我试图显示来自IP摄像头的视频源,出现以下错误

warning: Could not find codec parameters 

(../../modules/highgui/src/cap_ffmpeg_impl.hpp:540)
这是同样的代码

#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;
}
}
#包括
#包括
#包括
使用名称空间cv;
使用名称空间std;
int main(int,char**)
{ 
视频捕获vcap;
Mat图像;
//这适用于D-Link CD-932L
常量字符串videoStreamAddress=”http://admin:admin123@172.41.20.55:80/?操作=流?虚拟=参数mjpg”;//来自mjpeg拖缆
//常量字符串videoStreamAddress=”http://192.168.1.13:8080/videofeed?   dummy=param.mjpg;//使用ip cam从android进行流式传输
//打开视频流并确保其已打开
如果(!vcap.open(videoStreamAddress)){

cout警告不是错误!放松


在这种情况下,FFmpeg是在抱怨,而不是OpenCV。

我能够用以下代码解决问题

#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);
}
#包括
#包括
int main(){
CvCapture*camera=cvCaptureFromFile(“http://username:password@ipOfCamera/axis cgi/mjpg/video.cgi?分辨率=640x480,要求fps=30和.mjpg“;
如果(摄像机==NULL)
printf(“照相机为空\n”);
其他的
printf(“摄像机不为空”);
CVD公司(“img”);
while(cvWaitKey(10)!=atoi(“q”)){
double t1=(double)cvGetTickCount();
IplImage*img=cvQueryFrame(摄像机);
/*如果(img){
cvSaveImage(“C:/opencv.jpg”,img);
}*/
double t2=(double)cvGetTickCount();
printf(“时间:%gms fps:%.2g\n”,(t2-t1)/(cvGetTickFrequency()*1000.),1000./(t2-t1)/(cvGetTickFrequency()*1000.);
cvShowImage(“img”,img);
}
cvReleaseCapture(相机和相机);
}
如果它能帮助像我这样的人就好了。
还感谢@karlphillip为您提供的时间。

您安装了什么OpenCV版本?@karlphillip:我刚刚成功安装了OpenCV 2.4.6,但我收到了相同的警告。正如我所说:警告不一定是问题。这个问题甚至可能无法修复。您的程序是否正确显示捕获的帧?我是able使用USB网络摄像头捕获帧。不使用IP摄像头单击答案旁边的复选框,将其选为官方视频。