What are OvenMediaEngine and OvenPlayer?

OvenMediaEngine (OME) and OvenPlayer are a live streaming server and a player that are concentrated on Sub-Second Latency. OME is also a streaming engine that supports RTMP input used by most encoders and supports WebRTC, HLS, or MPEG-DASH output. Our products provide Ingest, Transcoding, Packaging, Publishing, and Play for Sub-Second Latency Live Streaming and have applied the technology to reduce latency in all sections.

Why did you start this project?

We think that one-way live streaming services are no longer of particular value to customers. Our goal is to help content providers with minimal technical knowledge easily open services that can help streamers and viewers interact in real-time. For example, this technology can be used in a variety of fields that viewers can participate in such as interactive or real-time broadcasting for gaming, gambling, RC car racing, auctions, and home shopping.

How does OME work?

We have connected the Edge server and player to WebRTC, allowing OME to reduce latency caused by the length of the chunk when using HLS or MPEG-DASH. We have also integrated and optimized this into one software to reduce latency from live transcoding and packaging.

What is Sub-Second Latency?

Latency is the time it takes for the video source delivered from the camera or encoder reaches the player and streams. In live streaming, typical latency can be 6 to 30 seconds. Streaming with a delay of 2 to 8 seconds is called Low latency, and delay of less than 1 second is called Sub-Second Latency.

What is WebRTC?

WebRTC is HTML5 standard technology where you can transfer media and data directly between browsers in real-time. It is currently available for most browsers such as Chrome, Safari, Firefox, and Edge. If you are interested in WebRTC compatibility, please see AirenBlog.

Which platforms are supported?

OvenMediaEngine has completed a test on Linux Ubuntu 18, CentOS 7, Fedora 28. Windows and MacOS versions will be available at a later date. OvenPlayer can be used if your browser supports WebRTC. Therefore, it supports all modern browsers such as Chrome, Safari, Firefox, and Edge.

Do users need to install plug-ins on their systems?

No. If the user is using a browser that supports HTML5, it works without plug-ins.

Do I need OvenPlayer to use OvenMediaEngine?

No. If you implement the WebRTC Signaling provided by OvenMediaEngine, you can use another player. It is not difficult to implement as the WebRTC Signaling of OME is provided by using WebSocket. For help on using your current player, please contact us. We will help you connect OvenMediaEngine to your player.

What licenses are applied?

OvenMediaEngine is based on a GPLv2 license, and OvenPlayer is based on a MIT license. If you require a special license for OvenMediaEngine, please contact us.

Why did you release your product as an Open-Source?

We want OvenMediaEngine and OvenPlayer to contribute to the open source community and our projects to be helped by the community. Moreover, we hope that more people will use our software.

Can I contribute to Open-Source?

Yes! You can contribute in many ways, including bug reports, feature suggestions, document enhancements, and code writing. For more information, please visit AirenSoft's GitHub ( https://github.com/AirenSoft).

Where can I get the latest source code?

You can get it from AirenSoft's GitHub (https://github.com/AirenSoft).

What are the required hardware specifications?

We recommend an 8-Core CPU, 16GB Memory. Moreover, if you use AWS instance to Edge, c5.2xlarge has the best price to performance.

Performance & Scalability

What is average latency and interval latency?

We tested Origin to Edge that was installed in AWS (region: seoul), and the average latency was 500ms when connected and streamed in Korea. In our experiment, the interval latency was as follows.

What is the latency when connecting overseas?

We installed OvenMediaEngine to AWS (region: us-east-1), and sent video to RTMP in Seoul, Korea, and received it via WebRTC. The latency was about 800ms.

Can this support 10 Gbps on a single server? Also, how many concurrent viewers can access this?

According to our experiments, we could use 10Gbps on a 32-core CPU. If you use the cloud, the best price to performance is to deliver 4 Gbps in an 8-core CPU instance.
Also, assuming that you are transmitting video at 2Mbps, it can accommodate about 2000 viewers on a single server.
However, it depends on the type of video. If the video you are sending is a fast, complex video, such as a football game or racing event, it may be possible to have only 1300 viewers.

How many channels can I make at once?

It is highly dependent on the quality of the video input and output. We are sorry, but we do not have accurate experimental data yet. Our recommendation is that you benchmark, and check the CPU usage during so.

Can I use multiple servers to expand traffic?

Yes. OvenMediaEngine supports the Origin to Edge structure, and Edge can continue to scale as much as the bandwidth allows. With multiple servers you can offer your service to more than 100,000 concurrent viewers.

Do you provide performance measurement tools?

Yes. Please email us (contact@airensoft.com) information about your test purpose(s) and environment. We will help you to measure the performance.

What should I consider to increase the number of concurrent users on a single server?

CPU Core, Network bandwidth, and Stream bitrates are the most important factors required to operate OME on a server. If the CPU core is sufficient, it can use many simultaneous connections as network bandwidth/stream bitrates can allow. However, if you are using the cloud to service OME, Packets Per Second (PPS) can be a significant factor as most clouds have PPS limits. Please use iPerf to measure how many UDP PPS values ​will be based in about 1400 bytes. So it is a great help in calculating the maximum number of viewers.

WebRTC uses UDP How does OME handle performance degradation due to UDP packet loss?

OvenMediaEngine supports the Origin to Edge structure, so it is best to install Edge close to your end viewers. We also added Forward Error Correction (FEC), which is a function to recover packets automatically. Chrome and Safari now support it, and Firefox supports it as an experimental feature.

P2P Delivery

What is P2P Delivery and what are the benefits of using it?

CDNs and Edge networks have apparent limitations. It is tough to guarantee the output traffic of more than a few hundred Gbps in one region. P2P Delivery reduces the output traffic cost of the Edge network by more than 50% and extends the traffic capacity.

How does P2P Delivery work?

P2P Delivery is a technology that allows some peers to receive streams from peers other than Edge. At this moment, we use WebRTC to transmit data between peers. When a peer requests a live stream to the OvenMediaEngine, it considers the location, platform, and performance of that peer and connects to the Edge or another peer. Therefore, it works by distributing and extending traffic to the peer.

Does streaming quality not degrade?

When P2P causes poor quality, it immediately connects back to Edge because of the simultaneous use of Edge (CDN) and P2P Delivery. We can solve most quality problems with this simple solution.

What happens if a user environment does not support WebRTC?

If the user environment does not support WebRTC, it is automatically detected and the protocol is switched to Low Latency HTTP (DASH), MPEG-DASH, and HLS. Because of this, there is no problem in stable streaming.

When using the P2P delivery function, what is the latency of the peer connected to the very end?

There is a latency of about two frames (60ms) between the peer receiving the stream directly from the edge, and the peer streaming to another peer.

Which peer is a Host or a Client?

It determines the host or client by considering the platform type, performance, and geographical location of the peer. We have investigated many device compatibilities to solve this type of issue efficiently, and plan to continue to study and update solutions.