Getting Started

Brave is the BBC's open-source live video mixer and routing engine. It lets you ingest multiple live video sources (RTMP, HLS, WebRTC, test patterns), mix or switch between them in real time, and output to RTMP or HLS destinations — all through a REST API or its browser-based editor. Available as an open web service in Eyevinn Open Source Cloud.

Prerequisites

  • If you have not already done so, sign up for an Eyevinn OSC account
  • A STUN server URL is required for WebRTC inputs/outputs. You can use the public Google STUN server (stun:stun.l.google.com:19302) for testing, but a dedicated TURN server is recommended for production.

Step 1: Create a Brave instance

Navigate to the Brave service in Eyevinn OSC, click Create brave, and fill in:

Field Value
Name A short identifier, e.g. mixer
StunServer STUN server URL, e.g. stun:stun.l.google.com:19302
TurnServer (Optional) TURN server URL for NAT traversal

Click Create. When the status indicator turns green, click the instance card to get the base URL.

Step 2: Access the editor

Open https://{instance-url}/ in a browser to reach the Brave web editor. From here you can add inputs, configure mixers, and set up outputs using a visual interface.

Step 3: Add inputs and outputs via the REST API

Brave exposes a REST API at https://{instance-url}/api/v1.

Add an RTMP input:

curl -X POST https://{instance-url}/api/v1/inputs \
  -H 'Content-Type: application/json' \
  -d '{"type": "rtmp"}'

The response includes the RTMP ingest URL to push your stream to.

Add an HLS output:

curl -X POST https://{instance-url}/api/v1/outputs \
  -H 'Content-Type: application/json' \
  -d '{"type": "hls"}'

List all sources:

curl https://{instance-url}/api/v1/inputs
curl https://{instance-url}/api/v1/outputs

CLI Usage

osc create bbc-brave mixer -o StunServer="stun:stun.l.google.com:19302"

Resources