Service: Strom - EyevinnOSC/community GitHub Wiki

Getting Started

Strom is an open source GStreamer-based GUI and flow engine that provides a visual, web-based editor for building and managing streaming media pipelines. You can wire together sources, filters, encoders, and outputs—including WebRTC WHIP/WHEP blocks—without writing GStreamer command lines. Available as an open web service in Eyevinn Open Source Cloud, Strom is ideal for prototyping live encoding and distribution workflows. This tutorial walks you through the steps to get started.

Prerequisites

Step 1 (Optional): Create a PostgreSQL database

By default Strom stores flows in a local JSON file. For production use or to share flows across multiple instances, connect a PostgreSQL database.

Navigate to the PostgreSQL service in the Eyevinn OSC web console. Click on "Create psql-db" and enter a name and password.

Based on the IP and port, the URI to your PostgreSQL database is postgresql://postgres:<password>@<IP>:<PORT>/strom.

Step 2: Create a Strom instance

Navigate to the Strom service in the Eyevinn OSC web console. Go to the tab "My stroms" and click "Create strom". Fill in:

  • Name: a name for your instance (alphanumeric and underscores only)
  • DatabaseUrl (optional): PostgreSQL connection URL for persistent flow storage (e.g. postgresql://postgres:mypassword@<IP>:<PORT>/strom)
  • IceServers (optional): STUN/TURN server configuration for WebRTC WHIP/WHEP blocks

For a quick test you can leave both optional fields empty and rely on the default JSON file storage.

Click on the instance card when the status is green and "running".

Step 3: Build your first pipeline

Open the Strom instance URL in your browser. The visual editor shows a canvas where you can:

  1. Click Add block to add a source, filter, encoder, muxer, or output block
  2. Connect blocks by dragging from an output pad to an input pad
  3. Click Start to launch the pipeline and monitor it in real time

For a simple test pipeline, add a videotestsrc source and connect it to an autovideosink output. Click Start to verify the pipeline runs correctly.

Usage example

Strom exposes a REST API so you can manage pipelines programmatically:

# List all flows
curl https://<your-instance-url>/api/flows

# Start a flow by ID
curl -X POST https://<your-instance-url>/api/flows/<flow-id>/start

CLI usage

# Without a database (JSON file storage)
osc create eyevinn-strom mystrom

# With PostgreSQL backend
osc create eyevinn-strom mystrom \
  -o DatabaseUrl="postgresql://postgres:mypassword@<IP>:<PORT>/strom"

Resources

⚠️ **GitHub.com Fallback** ⚠️