Programing espcam using platform io in visual studio

Hi all I am using platform io to program my esp32 and I found a problem when I try to do a live stream with esp32-cam I downloaded the example and I try it in my vs but it didn’t go will I try to use esp32-cam with led and it’s work fine I chose the bored correctly but I don’t know how to a live streaming Wich library should I use

   #include <Arduino.h>
   #include <WiFi.h>


   // Replace with your Wi-Fi credentials
   const char* ssid = "test";
   const char* password = "123456789";

   // Camera pin configuration for AI-Thinker ESP32-CAM
   #define PWDN_GPIO_NUM    -1
   #define RESET_GPIO_NUM    -1
   #define XCLK_GPIO_NUM     0
   #define SIOD_GPIO_NUM    26
   #define SIOC_GPIO_NUM    27
   #define Y9_GPIO_NUM      35
   #define Y8_GPIO_NUM      34
   #define Y7_GPIO_NUM      39
   #define Y6_GPIO_NUM      36
   #define Y5_GPIO_NUM      21
   #define Y4_GPIO_NUM      19
   #define Y3_GPIO_NUM      18
   #define Y2_GPIO_NUM       5
   #define VSYNC_GPIO_NUM   25
   #define HREF_GPIO_NUM    23
   #define PCLK_GPIO_NUM    22

   void startCameraServer();

   void setup() {
     Serial.begin(115200);
     Serial.setDebugOutput(true);
     Serial.println();

     // Camera configuration
     camera_config_t config;
     config.ledc_channel = LEDC_CHANNEL_0;
     config.ledc_timer = LEDC_TIMER_0;
     config.pin_d0 = Y2_GPIO_NUM;
     config.pin_d1 = Y3_GPIO_NUM;
     config.pin_d2 = Y4_GPIO_NUM;
     config.pin_d3 = Y5_GPIO_NUM;
     config.pin_d4 = Y6_GPIO_NUM;
     config.pin_d5 = Y7_GPIO_NUM;
     config.pin_d6 = Y8_GPIO_NUM;
     config.pin_d7 = Y9_GPIO_NUM;
     config.pin_xclk = XCLK_GPIO_NUM;
     config.pin_pclk = PCLK_GPIO_NUM;
     config.pin_vsync = VSYNC_GPIO_NUM;
     config.pin_href = HREF_GPIO_NUM;
     config.pin_sscb_sda = SIOD_GPIO_NUM;
     config.pin_sscb_scl = SIOC_GPIO_NUM;
     config.pin_pwdn = PWDN_GPIO_NUM;
     config.pin_reset = RESET_GPIO_NUM;
     config.xclk_freq_hz = 20000000;
     config.pixel_format = PIXFORMAT_JPEG;

     if (psramFound()) {
       config.frame_size = FRAMESIZE_UXGA;
       config.jpeg_quality = 10;
       config.fb_count = 2;
     } else {
       config.frame_size = FRAMESIZE_SVGA;
       config.jpeg_quality = 12;
       config.fb_count = 1;
     }

     // Initialize the camera
     esp_err_t err = esp_camera_init(&config);
     if (err != ESP_OK) {
       Serial.printf("Camera init failed with error 0x%x", err);
       return;
     }

     // Connect to Wi-Fi
     WiFi.begin(ssid, password);
     while (WiFi.status() != WL_CONNECTED) {
       delay(500);
       Serial.print(".");
     }
     Serial.println("");
     Serial.println("WiFi connected");

     // Start the camera server
     startCameraServer();

     Serial.print("Camera Stream Ready! Go to: http://");
     Serial.print(WiFi.localIP());
   }

   void loop() {
     // Main loop
   }

   void startCameraServer() {
     // Start the HTTP video stream server
     httpd_config_t config = HTTPD_DEFAULT_CONFIG();
     httpd_uri_t stream_uri = {
       .uri = "/stream",
       .method = HTTP_GET,
       .handler = stream_handler,
       .user_ctx = NULL
     };

     if (httpd_start(&stream_camera, &config) == ESP_OK) {
       httpd_register_uri_handler(stream_camera, &stream_uri);
     }
   }

   esp_err_t stream_handler(httpd_req_t *req) {
     camera_fb_t *fb = NULL;
     esp_err_t res = ESP_OK;
     size_t _jpg_buf_len = 0;
     uint8_t *_jpg_buf = NULL;
     char *part_buf[64];

     res = httpd_resp_set_type(req, "multipart/x-mixed-replace; boundary=frame");
     if (res != ESP_OK) {
       return res;
     }

     while (true) {
       fb = esp_camera_fb_get();
       if (!fb) {
         Serial.println("Camera capture failed");
         res = ESP_FAIL;
       } else {
         if (fb->format != PIXFORMAT_JPEG) {
           bool jpeg_converted = frame2jpg(fb, 80, &_jpg_buf, &_jpg_buf_len);
           if (!jpeg_converted) {
             Serial.println("JPEG compression failed");
             esp_camera_fb_return(fb);
             res = ESP_FAIL;
           }
         } else {
           _jpg_buf_len = fb->len;
           _jpg_buf = fb->buf;
         }
       if (res == ESP_OK) {
         size_t hlen = snprintf((char *)part_buf, 64, "--frame\r\nContent-Type: image/jpeg\r\nContent-Length: %u\r\n\r\n", _jpg_buf_len);
         res = httpd_resp_send_chunk(req, (const char *)part_buf, hlen);
       }
       if (res == ESP_OK) {
         res = httpd_resp_send_chunk(req, (const char *)_jpg_buf, _jpg_buf_len);
       }
       if (res == ESP_OK) {
         res = httpd_resp_send_chunk(req, "\r\n", 2);
       }
       if (fb) {
         esp_camera_fb_return(fb);
       }
       if (res != ESP_OK) {
         break;
       }
     }

     return res;
   }