FFmpeg is a great open source tool to read/write/manipulate live & recorded streams, and as it may seem it checks most of the boxes. However, you will notice that there are some latency issues (which can be adjusted with more FFmpeg flags but not perfected) when using FFmpeg with Red5 Pro and also you have to deal with security on your own. For a standard workflow, it is recommended that you use the Red5 Pro HTML5 SDK (for WebRTC) and the Red5 Pro mobile SDKs for Android/IOS streaming for best results.