Skip to content

What's included

Superstreamer is a monorepo, with multiple smaller projects inside. We'll provide a quick overview of the service, apps and libraries below to give you a sense of what each one does.

Building blocks

Getting the bigger picture from a high-level perspective can be challenging, but we'll do our best to guide you through how the different building blocks come together.

Ideally, Superstreamer provides tools that cover everything from input source files, like an MP4, all the way to playback, such as a player embedded in a page. However, you're free to choose the tools that best fit your use case and extend them with Superstreamer's features as needed.

Backend

API

The API serves as the primary interface for interacting with Superstreamer, such as start tasks like transcoding or packaging jobs. An OpenAPI structure is exposed on the /openapi endpoint.

Artisan

The actual job runners, these run in the background and consume whatever job API has scheduled next. Artisan instructs ffmpeg to run, or packages a previously transcoded asset to an HLS playlist and syncs it all to S3.

Stitcher

Also referred to as a "playlist manipulator", Stitcher can create a session for each user and generate a custom HLS playlist tailored to their needs, including resolution filtering and the addition of bumpers or linear ads. The stitcher has its own API. An OpenAPI structure is exposed on the /openapi endpoint.

Frontend

App

A Single Page Application (SPA) used to interact with the API or start a session on the Stitcher service.

Player

The player facade simplifies HLS.js with an intuitive API for building the player. It offers player-friendly methods, supports plugins, and provides React hooks for efficient state management.

References

Released under the MPL-2.0 License.