OvenMediaLabs/OvenMediaEngine

OvenMediaEngine (OME) is a Sub-Second Latency Live Streaming Server with Large-Scale and High-Definition. #WebRTC #LLHLS

C++

3,288

4,674 commits

updated Oct 12, 2026

See the code

README

OvenMediaEngine

GitHub release License Docker Build Docs Build

Docker Pulls (current) Docker Pulls (legacy)

What is OvenMediaEngine?

OvenMediaEngine (OME) is a Sub-Second Latency Streaming Server that can stream Large-scale and High-definition live streams over Low Latency HLS (LLHLS) and WebRTC to hundreds of thousands of viewers.

OME can ingest live streams over WebRTC, SRT, RTMP, RTSP, and MPEG2-TS protocols, encode them to ABR with the embedded live transcoder, and stream them to viewers over LLHLS and WebRTC.

With OvenMediaEngine, you can easily build a powerful, sub-second latency media service.

Demo https://space.ovenplayer.com

OvenSpace is a sub-second latency streaming demo service using OvenMediaEngine, OvenPlayer and OvenLiveKit. You can experience OvenMediaEngine live at the OvenSpace Demo and browse implementation examples in the OvenSpace Repository.

Features

  • Ingest
    • Push: WebRTC, WHIP(Simulcast), SRT, RTMP, E-RTMP, MPEG-2 TS/UDP
    • Pull: RTSP, OVT
    • Scheduled Channel (Pre-recorded Live)
    • Multiplex Channel (Duplicate stream / Mux tracks)
  • Adaptive Bitrate Streaming (ABR) for LLHLS and WebRTC
  • Low Latency Streaming using LLHLS
    • DVR (Live Rewind)
    • Dump for VoD
    • ID3v2 timed metadata
    • DRM (Widevine, FairPlay, PlayReady)
    • Subtitle (WebVTT)
  • Sub-Second Latency Streaming using WebRTC
    • WebRTC over TCP (With Embedded TURN Server)
    • Embedded WebRTC Signalling 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
  • Legacy HLS (HLS version 3)
    • Dump for VoD
    • MPEG-2 TS Container
    • Audio/Video Muxed
    • DVR
  • Sub-Second Latency Streaming using SRT
    • Secure Reliable Transport
    • MPEG-2 TS Container
    • Audio/Video Muxed
  • 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
    • Admission Webhooks
    • Signed Policy
  • File Recording
  • Push Publishing using SRT, RTMP and MPEG2-TS (Re-streaming)
  • Thumbnail
  • REST API

Supported Platforms

Although we have tested OvenMediaEngine on the platforms listed below, it may work with other Linux packages as well:

  • Docker
  • Ubuntu 18+
  • Rocky Linux 8+
  • AlmaLinux 8+
  • Fedora 28+

Quick Start

Docker

docker run --name ome -d -e OME_HOST_IP=Your.HOST.IP.Address \
-p 1935:1935 -p 9999:9999/udp -p 9000:9000 -p 3333:3333 -p 3478:3478 -p 10000-10003:10000-10003/udp -p 10000:10000/tcp \
ovenmedialabs/ovenmediaengine:latest

You can also store the configuration files on your host:

docker run --name ome -d -e OME_HOST_IP=Your.HOST.IP.Address \
-p 1935:1935 -p 9999:9999/udp -p 9000:9000 -p 3333:3333 -p 3478:3478 -p 10000-10003:10000-10003/udp -p 10000:10000/tcp \
-v ome-origin-conf:/opt/ovenmediaengine/bin/origin_conf \
-v ome-edge-conf:/opt/ovenmediaengine/bin/edge_conf \
ovenmedialabs/ovenmediaengine:latest

The configuration files are now accessible under /var/lib/docker/volumes/<volume_name>/_data.

Following the above example, you will find them under /var/lib/docker/volumes/ome-origin-conf/_data and /var/lib/docker/volumes/ome-edge-conf/_data.

If you want to put them in a different location, the easiest way is to create a link:

ln -s /var/lib/docker/volumes/ome-origin-conf/_data/ /my/new/path/to/ome-origin-conf \
&& ln -s /var/lib/docker/volumes/ome-edge-conf/_data/ /my/new/path/to/ome-edge-conf

Please read the Getting Started for more information.

WebRTC Live Encoder for Testing

Player for Testing

How to Contribute

Thank you for your interest in contributing to OvenMediaEngine.

We need your help to keep this project growing. There are many ways to contribute. For more information on how to contribute, please see our Guidelines and Rules.

We hope OvenMediaEngine inspires you to build something great.

About OvenMedia Labs and Projects

OvenMedia Labs aims to make it easier for you to build a stable broadcasting/streaming service with Sub-Second Latency. Therefore, we will continue developing and providing the most optimized tools for smooth Sub-Second Latency Streaming.

License

OvenMediaEngine is licensed under the AGPL-3.0-only. However, if you need another license, please feel free to email us at contact@ovenmedialabs.com.

broadcasting
cmaf
hls
large-scale-streaming
live-streaming-server
lldash
llhls
low-latency
low-latency-dash
low-latency-hls
low-latency-http
ome
ovenmediaengine
rtmp
rtmp-to-webrtc
streaming
streaming-server
sub-second-latency
ultra-low-latency
webrtc

OvenMediaLabs/OvenMediaEngine

OvenMediaEngine (OME) is a Sub-Second Latency Live Streaming Server with Large-Scale and High-Definition. #WebRTC #LLHLS

C++

3,288

4,674 commits

updated Oct 12, 2026

See the code

README

OvenMediaEngine

GitHub release License Docker Build Docs Build

Docker Pulls (current) Docker Pulls (legacy)

What is OvenMediaEngine?

OvenMediaEngine (OME) is a Sub-Second Latency Streaming Server that can stream Large-scale and High-definition live streams over Low Latency HLS (LLHLS) and WebRTC to hundreds of thousands of viewers.

OME can ingest live streams over WebRTC, SRT, RTMP, RTSP, and MPEG2-TS protocols, encode them to ABR with the embedded live transcoder, and stream them to viewers over LLHLS and WebRTC.

With OvenMediaEngine, you can easily build a powerful, sub-second latency media service.

Demo https://space.ovenplayer.com

OvenSpace is a sub-second latency streaming demo service using OvenMediaEngine, OvenPlayer and OvenLiveKit. You can experience OvenMediaEngine live at the OvenSpace Demo and browse implementation examples in the OvenSpace Repository.

Features

  • Ingest
    • Push: WebRTC, WHIP(Simulcast), SRT, RTMP, E-RTMP, MPEG-2 TS/UDP
    • Pull: RTSP, OVT
    • Scheduled Channel (Pre-recorded Live)
    • Multiplex Channel (Duplicate stream / Mux tracks)
  • Adaptive Bitrate Streaming (ABR) for LLHLS and WebRTC
  • Low Latency Streaming using LLHLS
    • DVR (Live Rewind)
    • Dump for VoD
    • ID3v2 timed metadata
    • DRM (Widevine, FairPlay, PlayReady)
    • Subtitle (WebVTT)
  • Sub-Second Latency Streaming using WebRTC
    • WebRTC over TCP (With Embedded TURN Server)
    • Embedded WebRTC Signalling 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
  • Legacy HLS (HLS version 3)
    • Dump for VoD
    • MPEG-2 TS Container
    • Audio/Video Muxed
    • DVR
  • Sub-Second Latency Streaming using SRT
    • Secure Reliable Transport
    • MPEG-2 TS Container
    • Audio/Video Muxed
  • 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
    • Admission Webhooks
    • Signed Policy
  • File Recording
  • Push Publishing using SRT, RTMP and MPEG2-TS (Re-streaming)
  • Thumbnail
  • REST API

Supported Platforms

Although we have tested OvenMediaEngine on the platforms listed below, it may work with other Linux packages as well:

  • Docker
  • Ubuntu 18+
  • Rocky Linux 8+
  • AlmaLinux 8+
  • Fedora 28+

Quick Start

Docker

docker run --name ome -d -e OME_HOST_IP=Your.HOST.IP.Address \
-p 1935:1935 -p 9999:9999/udp -p 9000:9000 -p 3333:3333 -p 3478:3478 -p 10000-10003:10000-10003/udp -p 10000:10000/tcp \
ovenmedialabs/ovenmediaengine:latest

You can also store the configuration files on your host:

docker run --name ome -d -e OME_HOST_IP=Your.HOST.IP.Address \
-p 1935:1935 -p 9999:9999/udp -p 9000:9000 -p 3333:3333 -p 3478:3478 -p 10000-10003:10000-10003/udp -p 10000:10000/tcp \
-v ome-origin-conf:/opt/ovenmediaengine/bin/origin_conf \
-v ome-edge-conf:/opt/ovenmediaengine/bin/edge_conf \
ovenmedialabs/ovenmediaengine:latest

The configuration files are now accessible under /var/lib/docker/volumes/<volume_name>/_data.

Following the above example, you will find them under /var/lib/docker/volumes/ome-origin-conf/_data and /var/lib/docker/volumes/ome-edge-conf/_data.

If you want to put them in a different location, the easiest way is to create a link:

ln -s /var/lib/docker/volumes/ome-origin-conf/_data/ /my/new/path/to/ome-origin-conf \
&& ln -s /var/lib/docker/volumes/ome-edge-conf/_data/ /my/new/path/to/ome-edge-conf

Please read the Getting Started for more information.

WebRTC Live Encoder for Testing

Player for Testing

How to Contribute

Thank you for your interest in contributing to OvenMediaEngine.

We need your help to keep this project growing. There are many ways to contribute. For more information on how to contribute, please see our Guidelines and Rules.

We hope OvenMediaEngine inspires you to build something great.

About OvenMedia Labs and Projects

OvenMedia Labs aims to make it easier for you to build a stable broadcasting/streaming service with Sub-Second Latency. Therefore, we will continue developing and providing the most optimized tools for smooth Sub-Second Latency Streaming.

License

OvenMediaEngine is licensed under the AGPL-3.0-only. However, if you need another license, please feel free to email us at contact@ovenmedialabs.com.

broadcasting
cmaf
hls
large-scale-streaming
live-streaming-server
lldash
llhls
low-latency
low-latency-dash
low-latency-hls
low-latency-http
ome
ovenmediaengine
rtmp
rtmp-to-webrtc
streaming
streaming-server
sub-second-latency
ultra-low-latency
webrtc

Significant stargazers

Aarni Koskela

535 followers · starred Nov 2024

Brad Hards

65 followers · starred Nov 2021

comex

1,319 followers · starred Nov 2021

Kostia R

134 followers · starred Aug 2025