Needing advice on cost-effective & secure video streaming for an educational app

Posted by The-amazing-man@reddit | learnprogramming | View on Reddit | 1 comments

Hey everyone,

I’m a 4th-year Software Engineering student building a mobile application completely solo for an online educational institute. The core feature of this app is hosting and delivering paid online video courses.

I’m struggling to finalize the video hosting and streaming architecture. My main constraints are a very tight operating budget from the client and the fact that the target users live in a region with slow and highly fluctuating internet speeds.

**The Tech Stack:**

* **Frontend:** Flutter

* **Backend:** [ASP.NET](http://ASP.NET) Core or Laravel

* **Database:** PostgreSQL or SQL Server

**Scale & Requirements:**

* **Storage:** 250+ GB of video content.

* **Traffic:** \\~2000 total enrolled students, expecting maybe 100-300 concurrent users at peak times.

* **Adaptive Bitrate (HLS):** Absolute necessity. Users cannot handle progressive MP4 downloads due to unstable connections.

* **Security:** These are paid courses, so the streams need to be secured (e.g., signed/expiring links) to prevent casual piracy and direct downloading.

* **Features:** I need to track and save user watch progress. I also need to implement resumable uploads for the instructors because their internet drops frequently during large file uploads.

**What I’ve researched so far:**

  1. **Cloudflare Stream / Mux:** Fantastic developer experience, but they charge per minute viewed. For long-form educational videos, the monthly costs would skyrocket way beyond the institute's budget.

  2. **Bunny.net:** Seems like the most balanced option (cheap storage + CDN, automated HLS encoding). I estimate it would cost around $20-$40/month. It's relatively affordable, but I want to make absolutely sure there isn't a better way before locking the client into a monthly bill.

  3. **Cloudflare R2 + Cloud Encoder (e.g., AWS MediaConvert):** Storing processed HLS chunks on R2 for $0 egress fees, and paying AWS just once for the encoding. Great for the budget, but increases my development workload significantly.

  4. **Custom FFmpeg on a VPS:** Building the pipeline from scratch. I’ve mostly ruled this out because, as a solo dev, the maintenance burden (crashed encoding jobs, server management) feels like too high of a risk.

  5. **Free-tier hacks (YouTube Private / Drive):** Ruled out due to TOS violations, rate limits, and lack of true dynamic HLS support.

**My Questions:**

* For a solo dev, is [Bunny.net](http://Bunny.net) the pragmatic choice for this specific "budget educational app" use case? Should I just push the client to accept the \\~$30/month operating cost to save my sanity?

* Has anyone implemented the R2 + cloud transcoder architecture? Is the cost savings actually worth the extra development time and complexity?

* Are there any other cost-effective architectures or services for handling secure HLS video that I am completely missing?

Any advice, reality checks, or experiences you can share would be hugely appreciated!