Page 1 of 1

ESP32S3 MJPEG Server Implementation

Posted: Sun May 21, 2023 10:34 pm
by tomatosoup
Hello

I'm trying to develop a MJPEG Server for the ESP32S3. For that, I'm using the pretty awesome esp32-camera library/framework: https://github.com/espressif/esp32-camera


My first try was to implement a MJPEG Server with the esp_http_server library. Luckily there is already an example in the esp32-camera repository https://github.com/espressif/esp32-came ... tp-capture

This seems to work most of the time in Firefox, but in some other systems this approach doesn't work at all. I think the reason for that is utilizing chunked encoding to send the JPEG frames. I checked other implementations like Axis, they are sending the data without chunked encoding. There seems to be no way to send data with the esp_http_server library without using chunked encoding.


My second approach was implementing a MJPEG Server with the Mongoose HTTP Library. They also have an example for a kind of MJPEG Server https://github.com/cesanta/mongoose/blo ... eam/main.c

The disadvantage of this approach is, that I don't have any synchronization anymore between capturing from the camera and the client receiving data. Thus, I often run into a Stack Overflow. The reason for that is the camera sending frames to the open connection, but the connection not being fast enough to transmit to the client.


Maybe someone has any solution or idea on how to find a solution.