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

Installing CMake

OvenMediaEngine supports most Linux distributions. The tested platforms are Ubuntu 18+, Fedora 28+, Rocky Linux 8+, and AlmaLinux 8+.

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/udp
$ sudo firewall-cmd --add-port=10000/tcp