C++ cURL下载相机图像(http请求)
我已经安装了cURL,我可以从网站上下载一张图片,效果很好 代码如下:C++ cURL下载相机图像(http请求),c++,image,curl,camera,C++,Image,Curl,Camera,我已经安装了cURL,我可以从网站上下载一张图片,效果很好 代码如下: #define CURL_STATICLIB #include <stdio.h> #include <stdlib.h> #include </usr/include/curl/curl.h> #include </usr/include/curl/stdcheaders.h> #include </usr/include/curl/easy.h> size_t
#define CURL_STATICLIB
#include <stdio.h>
#include <stdlib.h>
#include </usr/include/curl/curl.h>
#include </usr/include/curl/stdcheaders.h>
#include </usr/include/curl/easy.h>
size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) {
size_t written = fwrite(ptr, size, nmemb, stream);
return written;
}
int main(void) {
CURL *curl;
FILE *fp;
CURLcode res;
char *url = "http://www.example.com/test_img.png";
char outfilename[FILENAME_MAX] = "/home/c++_proj/output/web_req_img.png";
curl = curl_easy_init();
if (curl) {
fp = fopen(outfilename,"wb");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
res = curl_easy_perform(curl);
/* always cleanup */
curl_easy_cleanup(curl);
fclose(fp);
}
return 0;
}
#定义CURL\u STATICLIB
#包括
#包括
#包括
#包括
#包括
大小写入数据(void*ptr、大小、大小nmemb、文件*流){
写入的大小=写入(ptr、大小、nmemb、流);
书面回报;
}
内部主(空){
卷曲*卷曲;
文件*fp;
卷曲编码;
char*url=”http://www.example.com/test_img.png";
char outfilename[FILENAME_MAX]=“/home/c++_proj/output/web_req_img.png”;
curl=curl_easy_init();
if(curl){
fp=fopen(出口名称,“wb”);
curl_easy_setopt(curl,CURLOPT_URL,URL);
curl\u easy\u setopt(curl,CURLOPT\u WRITEFUNCTION,write\u data);
curl_easy_setopt(curl,CURLOPT_WRITEDATA,fp);
res=旋度(curl)\u容易执行(curl);
/*总是清理*/
旋度\轻松\清洁(旋度);
fclose(fp);
}
返回0;
}
我还有一个dlink DCS-930L摄像头。我可以轻松地将我的相机连接到一个静态IP地址,并且通过登录相机(例如http://192.168.1.5
)。
我不需要任何特殊的软件或任何东西来开始观看视频
现在,我想使用cURL从相机下载图像。但我不知道怎么做。
有人能告诉我,或者提供一些代码吗?
我所要做的就是捕获(采样)正在流式传输的一些图像。
我如何知道何时发出请求,以及何时是图像之间的边界
如果能给我一些建议和代码,我将不胜感激
T根据本相机的手册[1],您需要使用Java或ActiveX插件来接收和观看视频: 请确保您拥有最新版本的Java应用程序 安装在您的计算机上,以确保在查看 Java模式下的视频。Java应用程序可以免费下载 来自Sun的网站() 当您连接到相机的主页时,系统将提示您 下载ActiveX。如果要使用ActiveX查看视频 图像而不是Java,则必须下载ActiveX 这意味着获取图像将比简单地发出HTTP请求更加困难
[1] http://www.dlink.com/us/en/support/product/-/media/Consumer_Products/DCS/DCS%20930L/Manual/DCS%20930L_Manual_EN_US.pdf
这完全取决于摄像头提供的界面,即显示的图像/视频的内容类型
http://192.168.1.5
实际上是。唯一能够帮助你的人就是那些家里有那台相机的人。@Ruby:请不要在发帖时使用签名,伙计,谢谢,:)我想抓取这张图片的原因是我想对它进行一些图像处理。所以,不知何故,我需要下载图像,这样我就可以把它变成一种编程语言。我能用C/C++/Python/Java程序吗?我不熟悉这台相机,所以我不知道。用插件查看网页的来源,也许可以尝试嗅探网络流量——也许只是一个JPG流,然后你可以截取并保存它。