Designing a serverless video streaming pipeline
For a recent consulting project, we were looking into how to set up a serverless video streaming pipeline, to power a new over-the-top video subscription platform they are developing (think Netflix, but for a specific target audience).
They had recently outgrown their MVP stage where they used Vimeo to host their content, and were now looking to manage the hosting and distribution on their own platform for more control over the content creation process and the user experience.
It turns out it’s actually pretty simple to set this up a completely serverless proof-of-concept on AWS. Here’s how we did it.
Project requirements
For our proof-of-concept design, we focused on these main requirements:
- HLS format support: we wanted to provide our output in the form of standards-based M3U8 playlists files, giving the front-end team a wide range of video player libraries to choose from.
- Variable bitrate streaming: offer at least 3 quality settings, to be able to test variable bitrate streaming based on the user’s connection speed.
- Track outputs and conversion status in a database: we want insight in what video streams we have available for users and which ones are still processing.