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"