Я хочу получать изображения JPEG с IP-камеры по HTTP.Я использую LIBCURL для этой цели в моей C-программе.Камера возвращает одно изображение со следующим URL:
"http://143.205.116.14?image&res=full&x0=0&y0=0&x1=2944&y1=1920"
Используя LIBCURL, я могу получить одно изображение и записать его в файл .jpg в функции обратного вызова.Однако для непрерывной потоковой передачи камера принимает запрос GET следующим образом:
"GET /mjpeg&res=full&x0=0&y0=0&x1=2944&y1=1920 HTTP/1.1\r\n HOST:143.205.16.14\r\n\r\n"
Мне было интересно, как мне указать этот запрос GET в libcurl.Можно ли использовать в curl_easy_setopt ()?
В настоящее время я использую следующий код для получения одного изображения и сохранения в функции обратного вызова write_data:
size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) {
size_t written;
written = fwrite(ptr, size, nmemb, stream);
return written;
}
int main()
{
curl = curl_easy_init();
if(curl) {
fp = fopen("C:\\trans.txt","wb");
curl_easy_setopt(curl, CURLOPT_URL, "http://143.205.116.14?image&res=full&x0=0&y0=0&x1=2944&y1=1920");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
fclose(fp);
}
Как использовать метод GET, чтобы изображения получали непрерывно исохранено функцией обратного вызова?