For supported video types, Horizon is optimized in the sense that it recognizes videos and allows viewers to stream it in chunks for seamless watching.
- 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
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.
In the (possibly near) future, I do plan on scaling to the NA to give us better latency.