cURL下载相机的图像(http请求)
cURL downloading images of camera (http request)
我已经安装了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 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;
}
我还有一台dlink DCS-930L相机。我可以很容易地将相机连接到一个静态IP地址,并且通过登录相机(例如http://192.168.1.5
(,我可以在相机上观看实时视频。我不需要任何特殊的软件或任何东西来开始看视频。
现在,我想使用cURL从相机下载图像。但我不知道该怎么做。有人能告诉我,或者提供一些代码吗?我想做的只是捕捉(采样(一些正在流式传输的图像。我如何知道何时提出请求,以及图像之间的边界何时确定。
我真的很感激能给我一些建议和代码。
T
根据该相机的手册[1],您需要使用Java或ActiveX插件来接收和观看视频:
请确保您拥有最新版本的Java应用程序安装在您的计算机上,以确保在查看Java模式下的视频。Java应用程序可以免费下载来自孙的网站(http://www.java.com)。
当您连接到相机主页时,系统会提示您下载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
相关文章:
- 如何在boost beast http请求中设置http头
- 在多个核心中处理一个HTTP请求
- 使用 Winsock2.h C++向不和谐 API 发送 HTTP 请求时出现问题
- 使用 winsock 接收 http 请求
- 对于 http 请求,python 比 c++ 快吗?
- 在 C++/C 中使用 CURL 发出带有数据文件的 GET HTTP 请求
- 带有C++的 HTTP 请求
- 如何在QT中同步发送http请求
- 我可以使用 Boost.Asio 和 Boost.Beast 库发出 HTTPS 请求或 HTTP/2 请求吗?
- HTTP 请求中的标头名称无效
- 套接字或 HTTP 请求
- Winsock2.h 无法发送 http 请求
- 用libcurl生成http请求作为字符串
- http请求之前和之后的垃圾
- 从主机向在VirtualBox linux机器上运行的服务器发送http请求
- 如何在不阻塞 UI 线程的情况下对C++发出 http 请求
- C++ Boost 1.66 使用 Beast http 请求解析器解析字符串
- 在新线程C++中发送 http 请求
- 有什么方法可以通过按下按钮将HTTP请求从JS发送到C
- 套接字"Resource temporarily unavailable"的原始 HTTP 请求