Ant Media WebRTC Group Call Host

WebRTC Conferencing for Ant Media Server. Master with merger.

Layouts

Note: Not a live demo, server configuration is just for example. For live working example try the Dolby.io Publisher and Subscriber example. Or AWS Kinesis Publisher and Subscriber example.

    <div class="flex w-full h-auto my-auto">
      <video class="video-js vjs-default-skin vjs-fluid has-settings" crossorigin="anonymous" controls="" id="antmedia-conference-host"></video>
  </div>
  <script type="text/javascript">
  	var player = videojs("antmedia-conference-host", {
    "mergerSrc": "C6Lx6ku6FEXgKtt-merger",
    "plugins": {
        "peakmeter": {
            "verticalMeter": false
        },
        "rtcconference": {
            "autoPublish": true,
            "bgImage": "../../images/virtualbg.jpg",
            "container": "#conference-container",
            "enableFocus": true,
            "featuredContainer": "#featured-container",
            "fullscreenFeatured": true,
            "host": true,
            "lobbyContainer": "#conference-participant-container",
            "lobbyPlayerTemplate": "<div id=\"${id}\" class=\"conference-player conference-lobby-player group flex justify-center items-center\"><video id=\"${playerid}\" class=\"video-js vjs-default-skin vjs-fluid\" preload=\"none\" controls></video><button class=\"invisible group-hover:visible bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-2 absolute font-semibold bg-gradient-to-tr from-iblue-default hover:from-iblue-light to-iblue-light hover:to-iblue-default text-white focus:shadow-outline focus:outline-none text-sm\" x-data=\"{ staged: ${staged} }\" x-text=\"staged ? 'Remove' : 'Add To Room'\" @click.prevent=\"addToRoom($event);\" data-name=\"${name}\">Add To Room</button></div>",
            "logo": "../../images/wowza-logo.png",
            "mergerContainer": "#conference-merge-container",
            "mergerOnly": false,
            "mergerPreview": true,
            "playerTemplate": "<div id=\"${id}\" class=\"conference-player\"><video id=\"${playerid}\" class=\"video-js vjs-default-skin vjs-fluid\" preload=\"none\" controls></video></div>",
            "profile": "../../images/wowza-logo.png",
            "roomContainer": "#room-container",
            "studioMode": true
        },
        "rtcmerger": {
            "autoPublish": true,
            "bgImage": "../../images/virtualbg.jpg",
            "enableFocus": true,
            "host": true,
            "logo": "../../images/wowza-logo.png",
            "mergerApplication": "WebRTCAppE",
            "mergerContainer": "#conference-merge-container",
            "mergerPreview": true,
            "studioMode": false
        },
        "rtcpublisher": {
            "antmedia": {
                "apiToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.b8_QMj7F9lJ7aabDfswdXh6z3q4OkgLrgUtlvNfURsQ",
                "subscriberCode": "",
                "subscriberId": "",
                "token": ""
            },
            "applicationName": "WebRTCAppEE",
            "autoStartDevice": true,
            "channelName": "data",
            "dataChannel": true,
            "iceServers": [
                {
                    "urls": [
                        "stun:stun.l.google.com:19302",
                        "stun:stun1.l.google.com:19302",
                        "stun:stun2.l.google.com:19302",
                        "stun:stun3.l.google.com:19302",
                        "stun:stun4.l.google.com:19302"
                    ]
                }
            ],
            "publisher": true,
            "recording": {
                "mimeType": "video/mp4",
                "name": "C6Lx6ku6FEXgKtt-merger",
                "server": true
            },
            "roomName": "room1",
            "seperateScreen": true,
            "server": "antmedia-conference",
            "serverURL": "rtc.electroteque.org:5443"
        }
    },
    "sources": [
        {
            "src": "C6Lx6ku6FEXgKtt",
            "type": "application/webrtc"
        }
    ],
    "title": "Host"
});




      player.on("selectedParticipant", (e, participant) => {
console.log("selected participant", participant);
});
player.on("unselectedParticipant", (e, participant) => {
console.log("unselected participant", participant);
});
player.on("participantleft", (e, sender) => {
});
player.on("participantfeatured", (e, sender) => {
});
player.on("participantunfeatured", (e, sender) => {
});
player.on("leaveroom", e => {
});
player.on("roomjoinfailed", e => {
});
player.on("existingparticipants", (e, sender) => {
});
  </script>