Ant media Architecture?

Viewed 259

We have been using Kurento for a while and we are considering moving to Ant Media for performance reasons.

We have some questions please before deciding to buy Entreprise Licence. Sorry if our questions seem to basic for you.

We have a custom conference application where we have to create a meeting, add participants, merge webcam streams into one single video to be streamed to social media or elsewhere...

In our application everything should be done from server.

For example :

  • Joining a meeting is subject to server validation. It is not automatic for a participant to join and this should be validated according to our business logic (for example if the number of participants in a meeting exceeds X, it's not possible anymore to join the meeting. Or whether the participant has the right privileges to join a specific meeting...). So the server decides if he will accept a participant or not.
  • Add a logo, or title, or watermark...

Question A :

Are these features possible with Ant Media from Server Side ?

Question B :

Is it possible to merge participants webcam video streams ? I'm not asking about showing different videos using different HTML elements. I'm talking about merging the video on server side with the ability to add/remove a user video stream from the merge on the fly... And additionnally record the merged video.

We noticed that Ant Media is mainly client side. Although, it has a rest API, but I couldn't find any complete example of how to create a Hello World application from scratch using REST. For example creating a meeting and adding participants to it (and most importantly how to connect a webcam stream to the meeting). We came across this but there is almost nothing interesting. It's a generic page that explains REST applied to Ant Media. Nothing about the steps or achitecture to create an application.

Question C :

Is there any documentation please that explains how to create a complete sample application using REST ?

We couldn't find an documentation about Ant Media terminology. For example

Questions D :

  • What is meant by a "Broadcast" in Ant Media context ?
  • What is the difference between a "Broadcast" and a "Stream" ?
  • What is a publisher ?
  • In Live App samples we see different implementations : Player.html, Conference.html, Peer.html... So what is really an application according to Ant Media ? Shouldn't each one of them be considered as a different Application ?

Question E :

Why we don't see any of the samples in LiveApp application on the dashboard ? For example : Player.html, Conference.html, Peer.html... It's completely blank. Is there any documentation about the achitecture of an application on Ant Media ?

Any help on these questions is highly appreciated.

Thanks Cheers,

1 Answers

Let me do my best to answer your questions. I hope it gives your some clarity.

Question A : Are these features possible with Ant Media from Server Side ?

You can validate the joining to the call with your business logic. Ant Media Server supports several options for stream security. You can use them with REST API with your application server.

Add a logo, or title, or watermark...

There is no built-in feature. Fortunately, plugin architecture is going to be available in 2.4 and you can do these kind of things very easily.

Is it possible to merge participants webcam video streams ?

You can do that on the web page for now. Merging streams on the server side will be provided as a built-in feature in 2.4

We noticed that Ant Media is mainly client side. Although, it has a rest API, but I couldn't find any complete example of how to create a Hello World application from scratch using REST. For example creating a meeting and adding participants to it (and most importantly how to connect a webcam stream to the meeting). We came across this but there is almost nothing interesting. It's a generic page that explains REST applied to Ant Media. Nothing about the steps or achitecture to create an application.

Ant Media Server is mainly about server side. You can create your own application(business logic) in your application server and you can consume REST API of the Ant Media Server for your stream related operations.

Is there any documentation please that explains how to create a complete sample application using REST ?

Your sample application is your own job. Just use Ant Media Server as a backend streaming engine for your application. Building a sample application that has the business logic is not a proper way at this time.

What is meant by a "Broadcast" in Ant Media context ?

Broadcast is a live stream available in the strem.

What is the difference between a "Broadcast" and a "Stream" ?

Broadcast and Stream refers to the same things

What is a publisher?

Publisher is the one who create live stream in the Ant Media Server.

In Live App samples we see different implementations : Player.html, Conference.html, Peer.html... So what is really an application according to Ant Media ? Shouldn't each one of them be considered as a different Application ?

They are samples for your application. Such Conference.html is a sample of basic conferencing. Peer.html is a simple sample of P2P communication.

An application according to Ant Media is a scope and specifying same settings for the particular streams. Application according to Ant Media is not something to implement business logic.

Why we don't see any of the samples in LiveApp application on the dashboard ? For example : Player.html, Conference.html, Peer.html... It's completely blank. Is there any documentation about the achitecture of an application on Ant Media ?

Dashboard is just an administration panel. Player.html or Conference.html is not for end users and it should not be used in production. You can build your own web application by using these samples.

Related