Getting Started
Eyevinn Live Encoding is an RTMP-to-HLS live transcoding service. It accepts an RTMP push stream from any encoder or streaming software and outputs live HLS (and optionally MPEG-DASH) segments. You can serve the output directly or push it to a CDN origin such as AWS MediaPackage.
Prerequisites
- An OSC account (sign up here)
- A streaming source that can push RTMP (OBS, ffmpeg, hardware encoder, etc.)
Step 1: Create the encoder instance
Via web console
- Go to app.osaas.io/dashboard/service/eyevinn-live-encoding
- Click Create encoder
- Fill in the fields:
| Field | Default | Description |
|---|---|---|
| name | — | Short identifier for the instance, e.g. mystream |
| HlsOnly | true |
Output HLS only. Set to false to also generate MPEG-DASH |
| StreamKey | stream |
Stream key used in the RTMP URL |
| OutputUrl | — | CDN origin push URL (e.g. AWS MediaPackage ingest URL). Leave empty to serve directly from the instance |
- Click Create and wait for the instance to show status Running
Via CLI
npx -y @osaas/cli create eyevinn-live-encoding mystream \
-o StreamKey="mykey" \
-o HlsOnly="true"
Step 2: Push your stream
Once the instance is running, click it in the dashboard to see its Connection details. The RTMP ingest address is shown there in the form:
rtmp://<host>:<port>/live/<StreamKey>
In OBS or any RTMP-capable encoder:
- Server: rtmp://<host>:<port>/live
- Stream Key: the value you set for StreamKey (default: stream)
Stream key requirement: use alphanumeric characters only. Characters such as
^,[,{,}are not valid in RTMP URLs and will prevent the encoder from starting.
With ffmpeg:
ffmpeg -re -i input.mp4 \
-c:v libx264 -preset fast -b:v 2500k \
-c:a aac -b:a 128k \
-f flv rtmp://<host>:<port>/live/stream
Step 3: Play the stream
The HLS playlist is available at:
https://<instance-url>/live/<StreamKey>/index.m3u8
Open the URL in a HLS-capable player or test it with the HLS Playlist Viewer.
Pushing to a CDN origin
To deliver the stream at scale, set OutputUrl to your CDN ingest endpoint:
npx -y @osaas/cli create eyevinn-live-encoding mystream \
-o StreamKey="mykey" \
-o OutputUrl="https://<username>:<password>@xxxxx.mediapackage.us-east-1.amazonaws.com/in/v2/<channel-id>/channel"
When OutputUrl is set, the encoder pushes the transcoded HLS segments to the origin automatically.
Resources
- Eyevinn Live Encoding on GitHub
- Service: HLS Stream Monitor — monitor stream health
- Service: FAST Channel Engine — turn live streams into FAST channels