Skip to main content

Getting Started

Getting Started with Docker Image​

OvenMediaEngine provides Docker images from OvenMedia Labs Docker Hub (ovenmedialabs/ovenmediaengine) repository. You can easily use OvenMediaEngine server by using Docker image. See Getting Started with Docker for details.

Getting Started with Source Code​

Supported Platforms​

OvenMediaEngine builds on most Linux distributions that ship libstdc++ 10 or newer. The tested platforms are:

  • Ubuntu 22.04 / 24.04 / 26.04
  • Rocky Linux 9 / AlmaLinux 9 / RHEL 9
  • Amazon Linux 2023
  • Fedora 34 - 43
Platforms that are no longer supported

Ubuntu 18.04 / 20.04, Rocky Linux / AlmaLinux / RHEL 8 and Amazon Linux 2 ship libstdc++ 9 or older, and the build stops at the CMake configure step with an explanation. Fedora 44 is not supported yet, because jemalloc 5.3.0 does not compile against its libstdc++. Use the official Docker image on those systems.

Installing CMake​

OvenMediaEngine requires CMake 3.24 or later. Check your installed version with:

cmake --version
warning

The CMake version provided by some system package managers (e.g., apt-get on Ubuntu 22) may be older than 3.24. If your version does not meet the requirement, install a recent version from the official CMake website.

Building & Running​

First, download and extract the source code:

curl -LOJ https://github.com/OvenMediaLabs/OvenMediaEngine/archive/master.tar.gz && \
tar xvfz OvenMediaEngine-master.tar.gz
Building a specific release

The command above builds the latest development code from the master branch. To build a specific stable release instead (recommended for production), choose a version from the releases page and download its source archive:

# Set OME_VERSION to the release you want (see the releases page above)
OME_VERSION=0.20.5
curl -LOJ https://github.com/OvenMediaLabs/OvenMediaEngine/archive/v${OME_VERSION}.tar.gz && \
tar xvfz OvenMediaEngine-${OME_VERSION}.tar.gz

The build steps below are identical — just replace OvenMediaEngine-master with the extracted release directory (e.g. OvenMediaEngine-0.20.5).

Then build and install using the commands for your platform:

sudo apt-get update
sudo apt-get install -y build-essential ninja-build pkg-config
cd OvenMediaEngine-master
cmake -B build/Release -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build/Release
sudo cmake --install build/Release
sudo systemctl daemon-reload
sudo systemctl start ovenmediaengine
# If you want automatically start on boot
sudo systemctl enable ovenmediaengine.service
info

if systemctl start ovenmediaengine fails in Fedora, SELinux may be the cause. See Check SELinux section of Troubleshooting.

Ports used by default​

The default configuration uses the following ports, so you need to open it in your firewall settings.

PortPurpose
1935/TCPRTMP Input
9999/UDPSRT Input
4000/UDPMPEG-2 TS Input
9000/TCPOrigin Server (OVT)

3333/TCP
3334/TLS

LLHLS Streaming
* Streaming over Non-TLS is not allowed with modern browsers.

3333/TCP
3334/TLS

WebRTC Signaling (both ingest and streaming)
3478/TCPWebRTC TCP relay (TURN Server, both ingest and streaming)
10000/UDP, 10000/TCPWebRTC Ice candidate (both ingest and streaming)
warning

To use TLS, you must set up a certificate. See TLS Encryption for more information.

You can open firewall ports as in the following example:

$ sudo firewall-cmd --add-port=3333/tcp
$ sudo firewall-cmd --add-port=3334/tcp
$ sudo firewall-cmd --add-port=1935/tcp
$ sudo firewall-cmd --add-port=9999/udp
$ sudo firewall-cmd --add-port=4000/udp
$ sudo firewall-cmd --add-port=3478/tcp
$ sudo firewall-cmd --add-port=9000/tcp
$ sudo firewall-cmd --add-port=10000-10003/udp
$ sudo firewall-cmd --add-port=10000/tcp