/OvenMediaEngine

OvenMediaEngine (OME) is a streaming engine for real-time live broadcasting with sub-second latency.

Primary LanguageC++GNU General Public License v2.0GPL-2.0

"Sub-Second Latency Streaming Server" OvenMediaEngine

What is OvenMediaEngine?

OvenMediaEngine (OME) is Open-Source Streaming Server with Sub-Second Latency. OME receives RTMP, MPEG-TS (Beta), and RTSP (Beta) from encoders and cameras such as OvenStreamEncoder, OBS, XSplit, and more. Then, it transmits media sources using WebRTC, Low Latency MPEG-DASH, MPEG-DASH, and HLS. We also provide OvenPlayer, Open-Source HTML5 Player.

main

What is the goal of this project?

Our goal is to make it easier for you to build a stable broadcasting/streaming service with Sub-Second Latency. So, our projects have the most optimized tools from Encoder to Player for smooth streaming.

Please click on each banner below for details.

OvenLiveKit OvenMediaEngine OvenPlayer

Features

  • RTMP Push, MPEG-2 TS Push (Beta), RTSP Pull (Beta) Input
  • WebRTC sub-second streaming
    • ICE (Interactive Connectivity Establishment)
    • DTLS (Datagram Transport Layer Security)
    • SRTP (Secure Real-time Transport Protocol)
    • ULPFEC (Forward Error Correction) with VP8, H.264
    • In-band FEC (Forward Error Correction) with Opus
  • Low latency MPEG-DASH(Chunked CAMF) streaming
  • Legacy HLS/MPEG-DASH Streaming
  • Embedded Live Transcoder (VP8, H.264, Opus, AAC, Bypass)
  • Embedded WebRTC Signalling Server (WebSocket based)
  • Origin-Edge structure
  • Monitoring
  • Experiment
    • P2P Traffic Distribution (Only WebRTC)

Supported Platforms

We have tested OME on the platforms listed below. However, we think it can work with other Linux packages as well:

Getting Started

Docker

docker run -d \ 
-p 1935:1935 \
-p 3333:3333 \
-p 8080:8080 \
-p 9000:9000 \
-p 4000-4005:4000-4005/udp \
-p 10006-10010:10006-10010/udp \
--name ovenmediaengine \
airensoft/ovenmediaengine:latest

You can also store the configuration files on your host:

docker run -d \
-p 1935:1935 \
-p 3333:3333 \
-p 8080:8080 \
-p 9000:9000 \
-p 4000-4005:4000-4005/udp \
-p 10006-10010:10006-10010/udp \
-v ome-origin-conf:/opt/ovenmediaengine/bin/origin_conf \
-v ome-edge-conf:/opt/ovenmediaengine/bin/edge_conf \
--name ovenmediaengine \
airensoft/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 them on a different location, the easiest way is to create links:

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

Other Methods

Please read Getting Started chapter in tutorials.

How to Contribute

Please see our Guidelines and Rules.

And we are love to hear use cases. Please tell your story to contact@airensoft.com. The voices of real-contributors are of great help to our project.

Contribute

For more information

License

OvenMediaEngine is licensed under the GPLv2 or later.