DEV Community

Debarshi Das
Debarshi Das

Posted on

Need guidance for creating an OTT platform.

Hi devs, I am creating an OTT platform for a client. Its almost a netflix like application with a limited geographical content. The publishers will upload their movies, shows, podcasts video etc to the system & after processing the video files they will be streamed in different formats (like 1080, 720, 480 etc) to the users (There will be a subscription system too).

My development stack is - Nodejs, Express, MongoDB, Nuxtjs.

Now my questions are little bit a system design kind of thing!

  1. Should I go for a service like JWPlayer for streaming or I handle my own streaming.

  2. If I use my own streaming (without any 3rd party service), is Hls is the best option?

  3. Which player should I use. (I have found some free to use - Plyr.js, video.js)

  4. Should I convert the uploaded video files in the server using ffmpeg or use any other service like AWS Media convert (I am going to use s3 for storage)?

Any suggestions are highly appreciated. Thank you.

Top comments (1)

Collapse
 
davekiss profile image
Dave Kiss

Hey Debarshi, Dave here, I'm a community engineer at Mux – but before I joined Mux, I was building something very similar to what you're describing, so maybe my advice will be helpful.

While it's definitely possible to build your own transcoding and delivery pipeline, I'd recommend thinking twice before you start going down that rabbit hole. This sort of thing can get super complicated and tangled quick, with many different industry-specific terms, edge cases, and technologies. Suddenly you find yourself needing to be the video expert and keeping your stack up-to-date with the latest methodologies. It was a huge pain for me, something I spent actual months building, and even then, my solution would still choke on some input video files (like videos recorded on my cheapo action camera)

I finally got fed up and decided to try out Mux, and wouldn't you know it… it took a few hours/days to implement with API calls and tech that I already knew...and it just worked. Mux also has a video player as well, so every single part of what you describe can be built using Mux tech. Even if I didn't work at Mux, here's what I would do in your situation:

1.) Upload video files directly to Mux (and possibly store a copy of them in S3)
2.) Use Mux and never have to think about what option is the best
3.) Use mux-player or mux-player-react (free) and get an accessible, modern, flexible, up-to-date video player out of the box
4.) Let Mux handle the rat's nest that is video conversion and never have to think about it again

I know this sounds pretty promotional, but it's all 100% honest from my own experience. If you do decide to go off and try to build your own solution, godspeed!

Let me know if you have any other specific questions – glad to be a resource!