# MJPEG Multiclient Streaming Server ## With latest ESP-CAM drivers Full story: https://www.hackster.io/anatoli-arkhipenko/multi-client-mjpeg-streaming-from-esp32-47768f ### Procedure: 1. Download latest ZIP file from https://github.com/espressif/esp32-camera.git into the esp32-cam subfolder 2. unzip using `unzip -j esp32-cam-master.zip` command. This will place all files in the same folder **NOTE:** please observe the `-j` flag: the sketch assumes all files are in the same folder. In **esp32-cam.ino** sketch select your camera pin assignment. The choices are: - CAMERA_MODEL_WROVER_KIT - CAMERA_MODEL_ESP_EYE - CAMERA_MODEL_M5STACK_PSRAM - CAMERA_MODEL_M5STACK_WIDE - CAMERA_MODEL_AI_THINKER Compile the **esp32-cam.ino** sketch using the following settings: - ESP32 Dev Module - CPU Freq: 240 - Flash Freq: 80 - Flash mode: QIO - Flash Size: 4Mb - Partition: Minimal SPIFFS (or any other that would fit the sketch) - PSRAM: Enabled ### Results: I was able to run multiple browser windows, multiple VLC windows and connect multiple Blynk video widgets (max: 10) to ESP-EYE chip. The delay on the browser window was almost unnoticeable. In VLC you notice a 1 second delay probably due to buffering. Blynk performance all depends on the phone, so no comments there. This is incredible considering the size of this thing! The camera on ESP-EYE is actually quite good. ### Enjoy! ------ ##### Other repositories that may be of interest ###### ESP32 MJPEG streaming server servicing a single client: https://github.com/arkhipenko/esp32-cam-mjpeg ###### ESP32 MJPEG streaming server servicing multiple clients (FreeRTOS based): https://github.com/arkhipenko/esp32-cam-mjpeg-multiclient ###### ESP32 MJPEG streaming server servicing multiple clients (FreeRTOS based) with the latest camera drivers from espressif. https://github.com/arkhipenko/esp32-mjpeg-multiclient-espcam-drivers ###### Cooperative multitasking library: https://github.com/arkhipenko/TaskScheduler