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
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
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:
- Ubuntu 18
- Fedora 28
- Rocky Linux 8
- AlmaLinux 8
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
sudo dnf update
sudo dnf install -y 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
sudo dnf update
sudo dnf install -y 'dnf-command(config-manager)'
sudo dnf config-manager --set-enabled crb || sudo dnf config-manager --set-enabled codeready-builder-for-rhel-8-x86_64-rpms || sudo dnf config-manager --set-enabled powertools || true
sudo dnf install -y ninja-build pkgconf-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
sudo dnf update
sudo dnf install -y 'dnf-command(config-manager)'
sudo dnf config-manager --set-enabled crb || sudo dnf config-manager --set-enabled codeready-builder-for-rhel-8-x86_64-rpms || sudo dnf config-manager --set-enabled powertools || true
sudo dnf install -y ninja-build pkgconf-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
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.
| Port | Purpose |
|---|---|
| 1935/TCP | RTMP Input |
| 9999/UDP | SRT Input |
| 4000/UDP | MPEG-2 TS Input |
| 9000/TCP | Origin Server (OVT) |
3333/TCP | LLHLS Streaming |
3333/TCP | WebRTC Signaling (both ingest and streaming) |
| 3478/TCP | WebRTC TCP relay (TURN Server, both ingest and streaming) |
| 10000/UDP, 10000/TCP | WebRTC Ice candidate (both ingest and streaming) |
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