1. Then setup a worker thread with a very high nice value, like 19. Limit your throughput with tick-based compute (sleep if you're using too much compute)
2. Not if you do as proposed
3. Efficiency is not your problem, as you've stated with the previous 2 requirements. Your algorithm doesn't have to be maximally efficient if it takes a while to compute (eg you're using sleep in it)
4. Doesn't matter, most users of this service will only be taking a few photos or videos a day. Offer a paid service upgrade for heavy users who cant handle the upload times.
- What if the user's hardware is not performant?
- Transcoding is intensive, so their machine will become slow
- Even wasm based ffmpeg will not be as efficient and has its own issues
- Takes a very long time