Easy to use WebRTC Player library to connect to Wowza Media Server.
I've added workaround for these errors.
Property 'on' does not exist on type 'PeerConnection'. Property 'emit' does not exist on type 'PeerConnection'.
That's it!
Install with yarn:
$ yarn add @nutbutterfly/wowza-webrtc-player
Or install using npm:
$ npm i @nutbutterfly/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();
player.setConfigurations({
sdpHandler(sdp, originalHandler) {
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" ) |
constrains | 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' } |
userData | Object / null |
Can be used to send data to Wowza (to handle authentification or other stuffs) |