New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Project Status #688
Comments
As the sole developer I still use the software extensively myself and will investigate issues that are raised. The main issue is that it currently relies on the camera support built into the GPU via the MMAL interface. This is no longer directly supported by the Raspberry OS although it can be turned on by turning on the legacy camera support. Unfortunately this also means the range of cameras supported is limited. To switch to using the libCamera method used in the OS for all cameras now is a fairly significant undertaking needing quite a lot of effort on coding of the main raspimjpeg process which supports the camera interface and all the video processing. There are also some technical challenges around the motion detection as that uses the h264 vectors available in the MMAL interface. That gives very efficient motion detection and there is no direct equivalent in libCamera. Currently, this not a development I can undertake on my own. If there are other developers who are interested then I would be very willing to contribute to this effort. |
Hello @roberttidey , Good to hear from you so quickly! I'm happy to help out a little bit. I did understand that there was a significant rework required since the OS changed in c. 2021. I probably need to have a more in-depth look at the inner workings before asking questions, but I'll ask anyway.
I'm trying to understand where someone would start. There seems to be lots happening here that needs attention. I have not found any alterative to RPi_Cam_Web_Interface that is nearly as feature rich or easy to deploy. It would be great to help fix it up and see it restored to it's former glory. |
raspimjpeg (source at https://github.com/roberttidey/userland/tree/master/host_applications/linux/apps/raspicam, files starting with RaspiM) was originally based around the original raspberry camera support raspivid. It was compiled within the userland repository as that provided all the necessary MMAL references. 1 & 2) raspimjpeg exploits the pipelining process in MMAL to get several streams out of the camera simultaneously and process them in different ways. One provides the resized mjpeg stream to feed the main preview. Another stream is used for full resolution video recording to h264 /mp4. A third stream allows for still image capture. A fourth stream provides h264 motion vectors for use in the motion detection. As well as the main camera / video processing. raspimjpeg supports a number of commands fed into command pipelines. The web interface uses these commands to provide the overall functionality. So the approach I would take is to modify the camera / processing in RaspiMCam.c and the motion detection in RaspiMMotion.c while leaving all the main control / command fairly intact. The source code would then be compiled separate from userland but linking with libCamera instead. The camera settings that the web interface exposes would also need to change as these are specific to those defined in MMAL and would need to change to those that libCamera uses. The web side would need to change to reflect that but that part would be fairly straightforward.
Getting into this requires understanding the RaspiM files. In particular, RaspiMCam.c which would need almost a complete rewrite. Even with a new libCamera version, I think I would archive the original raspimjpeg based version using MMAL particularly for any Zero v1 uses if the new version strained that platform too much. |
Thanks for the reply! Look, I am not expert in this area, but happy to do some more reading and collaboration to help with making this work. The new libcamera suite seems pretty friendly based on the documentation. There is a motion detection "stage" built into it (if you build it). Not sure how useful that is to replace the existing motion library currently used here. The V4L2 driver looks pretty interesting for having multiple streams. It maybe the way to build a new Functionality
I'll keep having a read of the existing raspimjpeg code and see if I can wrap my head around it over the next week. |
Do you know if @silvanmelchior is still around to help on this project? |
Hi there, still around, but unfortunately no capacity here |
Just want to let you guys know that I'm really excited to read there's still some hope for this project to support libcamera maybe sometime in the future. I bought a camera module v3 because i thought i could just replace my v2 module and keep using the RPI-Cam web interface. Was really sad when I found out it doesn't just work that way... Wouldn't even need motion detection. Just a simple web interface to manually record videos and take photos with the v3 module would be so much appreciated! |
Hey @SamVimes78. Great to see interest. I've actually put this in as a research project for Semester 1 with some University Students to help kick start progress. Hopefully they are up for the challenge to help bring this project back! |
Hi there,
I just wanted to check in on the status of this project?
I have noticed there has been no updates in 12 months. Does someone need to pick up this project to keep it going?
I really really love this project and have used it whenever I fire up a Pi Cam. Would be sad to see it decay away.
The text was updated successfully, but these errors were encountered: