Try Live Demo

We’re happy to announce that Ant Media Server v2.2 is out with CMAF support. Before giving more highlights for the new version, just let us thank all you guys out there that make Ant Media Server become a worldwide product in 121 countries. It’s great to help lots of people around the world for their video streaming projects. After this introduction, let me give the highlights for the v2.2.

Low Latency (CMAF) vs. Ultra Low Latency (WebRTC)

Ant Media Server right now supports both LL(CMAF) and ULL(WebRTC). Here is the some basic information about these technologies. CMAF provides low latency(3-5 secs) in live streaming, on the other hand WebRTC provides Ultra Low Latency(0.5 secs) in live streaming. Then which one is good for your streaming project, CMAF or WebRTC?

Which one to use?

Both technologies have advantages and disadvantages. You can pick the correct one according to your use case.  CMAF is good if there is no interactivity between broadcasters and viewers. It’s easier to scale with CMAF with CDNs.  It’s not much affected by instant network fluctuations because latency is about 3-5 seconds. On the other hand,  it’s good to use WebRTC if there is interactivity between broadcasters and viewers. You need to manage the edge WebRTC servers to scale.  It’s affected by instant network fluctuations(jitter, congestion) because it’s about 0.5 secs latency.

CMAF

CMAF

How to use CMAF?

Firstly, you need to enable it on your application’s configuration file. Let’s assume that you’ve already running Ant Media Server v.2.2 Enterprise on your server then we’re going to use WebRTCAppEE for CMAF streaming.

  • Open the following file with your favorite editor
    /usr/local/antmedia/webapps/WebRTCAppEE/WEB-INF/red5-web.properties
  • Enable DASH by adding following property to the file above
    settings.dashMuxingEnabled=true
  • Restart the Ant Media Server
    sudo service antmedia restart
  • Send WebRTC stream to Ant Media Server on WebRTC publisher page. Let’s assume your stream id is “stream1”
    https://YOUR_DOMAIN:5443/WebRTCAppEE
  • Play the stream with CMAF on the following url
    https://YOUR_DOMAIN:5443/WebRTCAppEE/play.html?id=stream1&playOrder=dash

Measure the latency. You’ll see something between 3-5 secs. Let us give further configuration parameters for DASH muxing.

  • settings.dashSegDuration : Duration of segments in DASH. Default value is 2
  • settings.dashFragmentDuration : Duration of fragments. Default value is 0.5
  • settings.dashTargetLatency : Target latency for measurement. Default value is 3.5.
  • settings.dashWindowSize :  DASH window size. Number of files in manifest. Default value is 5
  • settings.dashExtraWindowSize : DASH extra window size. Number of segments kept outside of the manifest before removing from disk. Default value is 5
  • settings.deleteDASHFilesOnEnded : Delete DASH files after streaming is ended.  Default value is true

Kubernetes Support

We’ve been getting requests for supporting Kubernetes(K8s) from our users for a while. So that we’ve decided to support Kubernetes in Ant Media Server. We’ve added extra parameters to start the server in the container.

kubernetes

Kubernetes is supported in Ant Media Server

Moreover, we’ve prepared the documentation for the Kubernetes. All kubernetes files(service, deployment) and dockerFile are available in the documentation. The critical thing for running Ant Media Server is that deployment uses hostNetwork which means that you can use one Ant Media Server pod in a node.

Long live the new King: Java 11

We don’t mean the “The king is dead” because Java 8 is still the most used Java version. On the other hand, for compatibility with tools and improvements in Java 11, we’ve migrated to Java 11 in Ant Media Server. In addition, we’ve monitored some performance improvements on Java 11. We plan to provide more performance metrics for this release later.  All install scripts and docker files are updated to use Java 11.

Java 11 is supported in Ant Media Server

Ant Media Server v2.2 is running in Java 11

Apache Portable Runtime(APR) and HTTP/2

We’ve updated Tomcat version to 8.5.58 and compiled native Apache Portable Runtime libraries for improving the performance. Tomcat can use the Apache Portable Runtime to provide superior scalability, performance, and better integration with native server technologies. Last but not the least, we’ve also enabled HTTP/2.0 in Ant Media Server.

http 2

If you want to take a look at the whole changes, please visit this link.

We continue our adventure to create something challenging and unique in the upcoming versions and projects(Spaceport – Volumetric Video).

Please keep in touch if we can help you with anything.

Categories: Tutorial

Ahmet Oguz Mermerkaya

Oguz is the co-founder of Ant Media. His tech stack includes VxWorks, UML, Rhapsody in C++. Java, OSGi, Swing, JSF, Web, PHP, FFmpeg API, Native WebRTC, Java EE, Hibernate, Spring, MongoDB, MySQL, Angular, JavaScript, HTML5, Android (Native) and iOS (Native). Oguz is one of the writers of "Merhaba Android", one of the first books published in Turkey about Android app programming. His second book is about HTML5 & CSS3. He has attended several conferences and universities talking about Android, business life and technical issues. He is a member of the GDG Community and also the founder of GDG Ankara.