For streaming, I have a few pi's (and cameras) running v4l2rtspserver, and it seems to work pretty well. It appears to be using the Broadcom hardware support for H.264 encoding, so it's pretty light on the CPU. I'm currently using Shinobi on a different host to receive and archive the RTSP streams. (Although I'm interested in checking out Frigate, which was mentioned elsewhere in this discussion.)
I did this for a university project. It streams to S3 (of Azure or Digital Ocean) encrypted, the client downloads it from there.
It's very rough around the edges but if you are up to contribute it's a good base.
https://github.com/tcz/choicecam-server https://github.com/tcz/choicecam-client
The client is a React Native project, should run on Android or iOS.
For streaming, I have a few pi's (and cameras) running v4l2rtspserver, and it seems to work pretty well. It appears to be using the Broadcom hardware support for H.264 encoding, so it's pretty light on the CPU. I'm currently using Shinobi on a different host to receive and archive the RTSP streams. (Although I'm interested in checking out Frigate, which was mentioned elsewhere in this discussion.)
MotionEye?