#include <stdio.h>
#include <opencv2/opencv.hpp>
#include <iostream>
int main(int, char**) {
cv::VideoCapture vcap;
cv::Mat image;
// This works on a Grundig GCI-K1505B
const std::string videoStreamAddress = "http://admin:1234@192.168.1.1/video.cgi?mjpeg";
if(!vcap.open(videoStreamAddress)) {
std::cout << "Error opening video stream or file" << std::endl;
return -1;
}
for(;;) {
if(!vcap.read(image)) {
std::cout << "No frame" << std::endl;
cv::waitKey();
}
cv::imshow("Output Window", image);
if(cv::waitKey(1) >= 0) break;
}
}
误差
* VIDEOINPUT库- 0.1995 - TFW07 *
警告:打开文件(/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:779)警告:打开视频流或按文件按下关闭此窗口的http://admin:1234@192.168.1.1/video.cgi?mjpeg (/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:780)错误。
GRUNDIG/Model:GCI-K1505B
网络浏览器MS Internet 6.0 (或更高版本)、Firefox、Google、Safari访问保护(登录和密码)、IP筛选器、IEEE802.1x用户数最多20个同时视频压缩H.264 (MPEG-4 4Part 10/AVC),MJPEG视频分辨率全高清1080 p/ SXGA/ HD 720 p/ XGA/SVGA/ D1/ VGA/ CIF/ QCIF视频流四流流: 4xH.264或3xH.264+MJPEG Triple: 3xH.264或2xH.264+MJPEG Dual: 2xH.264或H.264+MJPEG单帧: H.264或MJPEG帧速率(最高分辨率)50 QoS @2MP、25 QoS@2MP、50 QoS@1,3MP、25 QoS@1,3MP等。网络协议IPv4 4/V6、TCP/IP、UDP、RTP、RTSP、HTTP、HTTPS、DHCP、PPPoE、UPnP、SMTP、ICMP、SNMP、IEEE802.1x、QoS、QoS、QCIF、QCIF等。
发布于 2017-12-31 09:02:34
你有ONVIF摄像头。ONVIF相机有一个rtsp url,可以与opencv一起使用。
首先你需要发现你的相机rtsp url。有一些地方可以这样做,你可以尝试手册,或使用其他软件给你。我推荐软件onvif设备工具(链接)或gsoap-onvif (链接),它们都在Linux上工作,看看你的终端,rtsp url就在那里了。
在您发现您的rtsp url后,我建议您在vlc player (链接)上进行测试,您可以使用菜单选项“打开网络流”或从命令行进行测试:
vlc rtsp://your_url
而不是在代码上使用rtsp url,例如:
const std::string videoStreamAddress = "rtsp://10.0.0.105:554/user=admin_password=admin_channel=1_stream=0.sdp";
还将if更改为:
if(cv::waitKey(15) == 27) break;
我用我的相机在Linux上进行了测试,您的代码,通过这些修改,正在为我工作。
https://stackoverflow.com/questions/42440206
复制