whatisgithub

What is streamforge?

sivajisnehith/streamforge — explained in plain English

Analysis updated 2026-05-18

1HTMLAudience · developerLicenseSetup · moderate

In one sentence

A backend system that ingests uploaded videos, converts them into multiple streaming quality levels in the background using FFmpeg and RabbitMQ, similar to how streaming platforms process video.

Mindmap

mindmap
  root((StreamForge))
    What it does
      Video upload ingestion
      Background transcoding
      Adaptive HLS streaming
    Tech stack
      Spring Boot and Java
      PostgreSQL and RabbitMQ
      MinIO and FFmpeg
    Use cases
      Learn streaming pipelines
      Prototype video backends
      Local Docker testing
    Audience
      Backend developers
      Students learning video pipelines

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Learn how a video streaming ingestion pipeline works end to end, from upload to adaptive quality playback.

USE CASE 2

Prototype a backend that converts uploaded videos into multiple resolutions for smooth streaming.

USE CASE 3

Use as a reference for decoupling slow processing work from a web API using a message queue.

USE CASE 4

Run a self hosted video upload and transcoding stack locally with Docker for testing or learning.

What is it built with?

JavaSpring BootPostgreSQLRabbitMQMinIOFFmpegDocker

How does it compare?

sivajisnehith/streamforgeabhishek-kumar09/mern-live-js-june-2021abhishek-kumar09/z
Stars111
LanguageHTMLHTMLHTML
Last pushed2021-09-132019-12-23
MaintenanceDormantDormant
Setup difficultymoderatemoderateeasy
Complexity2/51/5
Audiencedeveloperdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Fully dockerized, needs Docker and Docker Compose but no local Java, Maven, or FFmpeg install.

MIT license, use freely for any purpose including commercial use, as long as you keep the copyright notice.

So what is it?

StreamForge is a backend system that mimics how large video platforms handle uploaded videos behind the scenes. Instead of processing a video the moment someone uploads it, which would make the person wait a long time for a response, StreamForge separates the upload step from the actual video processing work, so the upload finishes quickly and the heavy processing happens afterward in the background. When a video is uploaded, a Spring Boot API, a Java based web framework, saves the raw file to MinIO, a self hosted file storage system, and records basic information about the video in a PostgreSQL database. The API then sends a message to a queue managed by RabbitMQ and immediately replies to the user with the video's ID, without waiting for processing to finish. A separate background worker watches that queue, picks up new videos, and runs FFmpeg, a video processing tool, to convert the original file into multiple quality levels such as 480p, 720p, and 1080p, packaged in a streaming friendly format called HLS that can automatically switch quality based on a viewer's internet speed. It also generates a thumbnail image and extracts technical details about the video, then updates the database once everything is ready. The project includes user accounts protected by token based authentication, so only the person who uploaded a video can change or delete it, along with search, pagination for browsing many videos, and a Swagger interface for testing the API directly in a browser. Everything runs through Docker, so a user can start the whole system, including the database, message queue, and storage, with a single command, without installing Java or FFmpeg themselves. It is released under the MIT license.

Copy-paste prompts

Prompt 1
Explain how StreamForge uses RabbitMQ to separate video upload from video processing.
Prompt 2
Help me run StreamForge locally with docker-compose up --build and verify the database connection.
Prompt 3
Walk me through how StreamForge's FFmpeg step converts an uploaded video into 480p, 720p, and 1080p HLS streams.
Prompt 4
Show me how StreamForge's JWT authentication makes sure only the uploader can delete their own video.

Frequently asked questions

What is streamforge?

A backend system that ingests uploaded videos, converts them into multiple streaming quality levels in the background using FFmpeg and RabbitMQ, similar to how streaming platforms process video.

What language is streamforge written in?

Mainly HTML. The stack also includes Java, Spring Boot, PostgreSQL.

What license does streamforge use?

MIT license, use freely for any purpose including commercial use, as long as you keep the copyright notice.

How hard is streamforge to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is streamforge for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.