Major refactoring proposal #280
Conversation
|
Great work! This looks like a great progress to a more stable project. Out of curiosity, what framerates do you get while streaming the video? For me, the multistream-feature is really the most desired one, would be great if it gets finally implemented as default in the firmware. |
|
Hi @daschr thank you. Maximum resolution (1600x1200) on 12 fps is what I was getting. I found that the camera module gets heated and starts responding with delays if you set the FPS and resolution too high. Besides, the color noise increases, which is expected. In my projects, 800x600 on 25 fps is good enough. |
|
Hi @abratchik, that sounds awesome! I'll try your fork out when I'm home. |
|
great work! thx a lot. |
|
@easytarget push for this ;-) |
Hi @TungstenE2, I checked the PR #249 - will have to merge it manually as there is no more HTML in C/C++ code. All the HTML/CSS/JS moved to the /data folder, which needs to be copied either to the SD card or to the internal storage formatted as LittleFS. The changes you proposed will go to the /data/js/cam.js - ths is where all camera-related parameter controls are defined. |
|
@abratchik how about an auto reboot option? |
|
@abratchik does your new version also support OTA updates as the old version did? I have 2 cams installed in places that are not easy to access for wired updating. |
of course. Moreover, you can also configure it via GUI. Navigate to the On the other hand, you can keep your front end UI anywhere on your network, not necessarily on the device itself. Basically, you just need JSON API calls and Websocket operations for the image and video streaming. The front end could be good for demo and trial purposes but not for production, due to security considerations. I'd say security is one of the biggest issues in the current implementation. We will need to lock JSON and Websocket and change HTTP to HTTPS, otherwise this implementation will not be good for production. Same problem was also valid for the previous versions. |
|
@abratchik tried to follow instructions on https://github.com/abratchik/esp32-cam-webserver/tree/8f39567ff1b99d146bea02aacda1163ca8be5341 Get 2 error: Mehrere Bibliotheken wurden für "WiFi.h" gefunden |
how were you able to play the contents of this fork with ffmpeg? Trying to to input it in a similar way to the mjpeg stream of the original repo (but adding http basic auth) yielded: |
|
@abratchik @TungstenE2 @daschr and Co.. Apologies for going offline here, I got rather overwhelmed by life issues and this Project was one of the things I had to give up.. I should have archived it or something but I was thinking entirely correctly. ESP completely breaking, the re-breaking the Camera code didn't help my sense of humour either. Looking through this it seems obvious to me that I should really be pointing people to @abratchik 's fork and making it clear that I am not really maintaining this. I'm cleaning some stuff up at the moment.. Thoughts? is that A good idea, Is there an even better fork I should consider? Is there a better page where all the different firmwares are discussed?.. In the meantime I intend to try this PR and see how it goes, but I want to point new arrivals at a better fork. |
Add a check whether the WebSocket buffer has space.
|
Hi @abratchik . I use ESP32-CAM with ESPHome because I also need sensors, LEDs and Home Assistant integration on the same board. Your project seems to have improvements on the streaming/webserver side. Do you think the camera streaming backend could be separated from the rest of the project and reused elsewhere? I’m mainly wondering whether an ESPHome-oriented integration, or at least a reusable MJPEG/RTSP backend, would be technically realistic or whether your current architecture is too tightly coupled. Thanks. |
|
Hi @corrado-c , you may reuse it according to the open source license. I did decouple the original code from @easytarget as much as possible so it is easer to extract whatever necessary. |
Hi, @easytarget , I'd like to propose these changes in order to further expand the idea of can web server based on ESP32 CAM board and its clones.
Key changes in this PR:
./Docs/htmlfolder.Fixes
#272 - fixed. AP configuration is perfrmed in JSON config files, see README
#279 - internal CLAppConn class does the same job but is within the project class hierarchy thus making the code more compact and managed under the project.
#158 - fixed
merges PRs:
#249 - changes proposed in the PR ported to the new UI.
#192 - implemented, see API documentation.
#51 - implemented
#54 - implemented