Introduction
What is OvenMediaEngine?
OvenMediaEngine (OME) is a Sub-Second Latency Live Streaming Server with Large-Scale and High-Definition. With OME, you can create platforms/services/systems that transmit high-definition video to hundreds-thousand viewers with sub-second latency and be scalable, depending on the number of concurrent viewers.
OvenMediaEngine can receive a video/audio, video, or audio source from encoders and cameras such as OvenLiveKit, OBS, XSplit, and more, to WebRTC, SRT, RTMP, MPEG-2 TS, and RTSP as Input. Then, OME transmits this source using LLHLS (Low Latency HLS) and WebRTC as output. Also, we provide OvenPlayer, an Open-Source and JavaScript-based WebRTC/LLHLS Player for OvenMediaEngine.
Our goal is to make it easier for you to build a stable broadcasting/streaming service with sub-second latency.
Features
- Ingest
- Push: WebRTC, WHIP (Simulcast), SRT, RTMP, E-RTMP, MPEG-2 TS
- Pull: RTSP
- Scheduled Channel (Pre-recorded Live)
- Multiplex Channel (Duplicate stream / Mux tracks)
- Adaptive Bitrate Streaming (ABR) for HLS, LLHLS and WebRTC
- Low-Latency Streaming using LLHLS
- DVR (Live Rewind)
- Dump for VoD
- ID3v2 timed metadata
- DRM (Widevine, FairPlay, PlayReady)
- Sub-Second Latency Streaming using WebRTC
- WebRTC over TCP (with embedded TURN server)
- Embedded WebRTC Signaling Server (WebSocket based)
- Retransmission with NACK
- ULPFEC (Uneven Level Protection Forward Error Correction)
- VP8, H.264, H.265
- In-band FEC (Forward Error Correction)
- Opus
- HLS (version 3) Streaming support for legacy devices
- MPEG-2 TS Container
- Audio/Video Muxed
- DVR (Live Rewind)
- Sub-Second Latency Streaming using SRT
- Secure Reliable Transport
- MPEG-2 TS Container
- Audio/Video Muxed
- Enhanced RTMP (E-RTMP) for Advanced Codec Support
- H.264, H.265, AV1, AAC
- More codec support will be added continuously
- Embedded Live Transcoder
- Video: VP8, H.264, H.265 (Hardware only), AV1, Pass-through
- Audio: Opus, AAC, Pass-through
- Clustering (Origin-Edge Structure)
- Monitoring
- Access Control
- AdmissionWebhooks
- SignedPolicy
- File Recording
- Push Publishing using SRT, RTMP and MPEG2-TS (Re-streaming)
- Thumbnail
- REST API
Supported Platforms
Building OvenMediaEngine requires libstdc++ 10 or newer. We test on the platforms listed below, and other Linux distributions with a comparable toolchain are likely to work as well:
- Docker (https://hub.docker.com/r/ovenmedialabs/ovenmediaengine) - the official image is built on Ubuntu 22.04
- Ubuntu 22.04 / 24.04 / 26.04
- Rocky Linux 9 / AlmaLinux 9 / RHEL 9
- Amazon Linux 2023
- Fedora 34 - 43
Ubuntu 18.04 / 20.04, Rocky Linux / AlmaLinux / RHEL 8 and Amazon Linux 2 ship libstdc++ 9 or older. OvenMediaEngine stops at the CMake configure step on those systems, because predicate-based wait_until() busy-spins there instead of waiting (GCC PR 91906). Use the Docker image instead.
Fedora 44 is not supported yet: jemalloc 5.3.0 does not compile against its libstdc++.
Getting Started
Please read Getting Started chapter in the tutorials.
How to Contribute
Thank you so much for being so interested in OvenMediaEngine.
We need your help to keep and develop our open-source project, and we want to tell you that you can contribute in many ways. Please see our Guidelines, Rules, and Contribute.
- Finding Bugs
- Reviewing Code
- Writing Code: Thread Safety Analysis (TSA) Guide
- Sharing Ideas
- Testing
- Improving Documentation
- Spreading & Use Cases
- Recurring Donations
We always hope that OvenMediaEngine will give you good inspiration.
For more information
- OvenMediaEngine GitHub
- OvenMediaEngine Website
- OvenMediaEngine Tutorial Source
- Test Player
- Without TLS: http://demo.ovenplayer.com
- With TLS: https://demo.ovenplayer.com
- OvenPlayer Github
- OvenMedia Labs Website
License
OvenMediaEngine is licensed under the AGPL-3.0-only. However, if you need another license, please feel free to email us at contact@ovenmedia.com.