Easy to use WebRTC Player library to connect to Wowza Media Server.
Install with yarn:
$ yarn add wowza-webrtc-player
Or install using npm:
$ npm i wowza-webrtc-player
To works, we need to create a WowzaWebRTCPlayer instance bound to a HTML5 video element.
The second parameters allows you to set different options. You can change it later using player.setConfigurations(options).
import { WowzaWebRTCPlayer } from 'wowza-webrtc-player';
const videoElement = document.querySelector('video');
const player = new WowzaWebRTCPlayer(videoElement, {
sdpUrl: 'wss://zeezzrezrezr.streamlock.net/webrtc-session.json',
applicationName: 'webrtc',
streamName: 'myStream',
});It will ask for browser permission, and connect your camera to the video element.
await player.playLocal();await player.publish();await player.stop();await player.stopLocal();await player.playRemote();await player.stop();const stream = player.getMediaStream();
player.attachStream(newStream);player.setConfigurations({
sdpHandler(sdp, originalHandler, type) {
if (type === 'play') {
// update sdp
return originalHandler(sdp);
} else if (type === 'publish') {
// update sdp
return originalHandler(sdp);
}
},
});It need to be enabled in your Wowza server.
const streams = await player.getAvailableStreams();
streams.forEach((stream) => {
console.log(
stream.streamName,
stream.codecAudio,
stream.codecVideo,
stream.readyAudio,
stream.readyVideo
);
});| Key | Type | |
|---|---|---|
| applicationName | string |
Your wowza app name ("live" or "webrtc" in Wowza documentation). |
| streamName | string |
Your Wowza stream name ("myStream" in Wowza documentation) |
| sdpUrl | string |
Your Wowza websocket secured url (should looks like "wss://zeezzrezrezr.streamlock.net/webrtc-session.json") |
| constraints | MediaStreamConstraints | { video: true, audio: true } |
| iceServers | RTCIceServer | List of your ICE server to connect to |
| videoConfigs | Object |
{ bitRate:360, codec:'VP8', frameRate: 29.97 } |
| audioConfigs | Object |
{ bitRate:64, codec:'opus' } |
| secureToken | Object / null |
{"hash":"YOURHASHEDSECRET","starttime":0,"endtime":0} |
| userData | Object / null |
Can be used to send data to Wowza |