Camera Merger API Test

Conferencing video merger api tests

Merger Preview

WebRTC Conferencing configuration for Wowza Media Server. Wowza Media Developer and full licence works with WebRTC.

Supplied is a custom example websocket signal server Wowza provider project for one to many and group call features.

The secondary Websocket Wowza provider project is required for signalling new room partipants after publishing begins. Subscribed streams of participants will be displayed in the configured conferenceContainer container selector.

HLS conferencing subscribing is possible with Wowza configuring the conferenceSubscribeHls config. A transcoder is required for each WebRTC stream to convert the Opus audio codec to AAC with a passthrough for video.

    <div class="flex w-full h-auto my-auto">
      <video class="video-js vjs-default-skin vjs-fluid has-settings" crossorigin="anonymous" controls="" id="camera-merger-api"></video>
  </div>
  <script type="text/javascript">
  	var player = videojs("camera-merger-api", {
    "mergerSrc": "C6Lx6ku6FEXgKtt-merger",
    "plugins": {
        "peakmeter": {},
        "rtcconference": {
            "container": "#conference-container",
            "master": true,
            "mergerOnly": true
        },
        "rtcmerger": {
            "autoPublish": true,
            "bgImage": "../../images/virtualbg.jpg",
            "enableFocus": true,
            "master": true,
            "mergerContainer": "#conference-merge-container"
        },
        "rtcpublisher": {
            "applicationName": "webrtc/room1",
            "autoStartDevice": true,
            "buttons": false,
            "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"
                    ]
                }
            ],
            "publishToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3ZWJydGMifQ.MjehxjweF5tPPqUJQjHEHdHLz4sjaXkTkJh0dkM8w9_M5PMKoyzUJZPYyYtgT1qn17eDZlUOUeIeyr37z-KhN1u66L2ScVCwvs0dBjf6s2ZSIw0shvKmCdq7u5bd5llWTY0FDbbtFA1l60CkfOsTd0_dQpeyKm3Y94XgIaPyJB_PCCezO8V1xmcyMT1aqPfwr99AmM8s_P_8nuDL6A1HHppImwZL550AnTjuPQaAMRSVSNuzlLrwFXBA1SRaKOa2AVkIzP0tYkqWCYd03Gvn_CpxZ5dhk5s4UYSoYeK2FX4nz4khn_k8loFO-vDu2M-1r7dvFXnt8iNYWGTzDxPNuQ",
            "publisher": true,
            "server": "wowza-conference",
            "serverURL": "rtc.electroteque.org",
            "toggleScreen": true
        }
    },
    "sources": [
        {
            "src": "C6Lx6ku6FEXgKtt",
            "type": "application/webrtc"
        }
    ],
    "title": "Participant 1"
});




      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>