To keep it short: Is there any way to take full advantage of the camera’s 16MP and take high resolution (4656×3496) pictures while we record/stream a 1080p video without interrupting it?
I have Raspberry Pi 3B+ and Zero 2 W models available, if that matters.
This requirement may depend on whether the Raspberry Pi supports the corresponding function. To obtain more information, please consider contacting their forum. Thank you.
Thanks for your answer!
If anyone is curious: I asked in the RPI community and an engineer made it very clear, that what I was trying to accomplish wasn’t possible.
Yes, when you are recording a video, the camera is occupied, and you can no longer open a higher resolution to save the picture. 1080P is the maximum resolution for hardware encoding. If you’re trying to record video at a higher resolution, but software encoding is required, you can save the resolution you want.
Thanks again, Edward!
I have understood that a recording of a 1080p video doesn’t use the full sensor area (and shrinks it down), but just a portion of it.
So my solution / workaround is to keep using 1080p (to benefit from the hardware accel.), but set the camera mode to 2160p. That drastically improves image quality, but limits the FPS to 18, down from my previous 30. To compensate for the introduced motion blur by the lower frame rate, I increase the shutter speed by a lot and compensate for the loss in brightness by slightly adjusting brightness, contrast and EV parameters.
This results in a crisp and detailed 1080p video feed that contains all the details I need, so I can easily grab stills from the output of this feed.
I’m happy with this.
Would you mind sharing the code you used to implement those settings? I am working with a raspberry pi and the same camera. I’ve been playing around with libcamera on the command terminal and picamera2 for python. Thanks!