finds.dev← search

// the find

streamlinevideo/streamline

★ 783 · Shell · MIT · updated Aug 2025

A reference system for end to end live streaming video. Capture, encode, package, uplink, origin, CDN, and player.

A teaching reference implementation of a full live-streaming pipeline: HDMI/SDI capture on a GPU-equipped Linux box, FFmpeg encode into HLS, a Caddy origin server, CloudFront as CDN, and hls.js for playback. It's aimed at engineers who want to understand how broadcast-grade live streaming actually works end to end, not at anyone needing a product to run.

The README is a legitimately good standalone explainer of HLS internals — manifest rolling windows, variant playlists, segment naming — useful even if you never touch the scripts. It wires together real, swappable off-the-shelf components (FFmpeg, Caddy, hls.js, CloudFront) instead of a bespoke black box, so each stage is independently debuggable. The build/launch scripts (buildEncoder.sh, buildServer.sh, launch.sh) give you an actual runnable path from camera input to a watchable URL, not just a diagram.

It tracks FFmpeg's master branch with no pinned commit or CI, so a build today can behave differently from what the author tested. There is no authentication or encryption anywhere in the encoder-to-origin path — the README's answer to this is 'I'll leave that for people to figure out.' It's hard-pinned to specific hardware (Blackmagic DeckLink, NVIDIA Quadro) and an old Ubuntu release (16.04/18.04), with no containerization, so it won't run as written on anything else without script surgery. The project's own roadmap (LHLS, DASH, an NGINX alternative to the personally-licensed Caddy build) has sat as TODOs for years, so treat it as a frozen snapshot rather than active software.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →